# log2fpp **Repository Path**: galaxy_0/log2fpp ## Basic Information - **Project Name**: log2fpp - **Description**: log2fpp(内部名称为tinyLog)是一个高效的日志处理服务程序,专门用于接收、存储和管理来自其他进程的日志信息。它采用进程间通信(IPC)机制,允许不同应用程序将日志数据发送到统一的日志服务进行处理和存储。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-05 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # log2fpp (tinyLog) 软件简介 ## 软件概述 log2fpp(内部名称为tinyLog)是一个高效的日志处理服务程序,专门用于接收、存储和管理来自其他进程的日志信息。它采用进程间通信(IPC)机制,允许不同应用程序将日志数据发送到统一的日志服务进行处理和存储。 ## 核心功能 - 多协议支持 :支持管道(PIPE)和Unix Socket两种进程间通信方式 - 高效存储 :采用分页式日志存储机制,默认配置下可保存约24MB日志内容 - 循环覆盖 :当日志达到最大存储限制时,自动覆盖最旧的日志记录 - 日志导出 :支持将二进制日志文件导出为易读的文本文件格式 - 日志清理 :提供清理日志功能,快速释放存储空间 - 可配置性 :支持自定义日志文件路径、每条日志最大尺寸、最大保存日志数量等参数 ## 技术特点 - 模块化设计 :采用命令模式构建主事件循环,实现命令的分发和执行 - 单例模式 :日志模块使用单例设计,确保全局唯一的日志处理实例 - 异常处理 :全面的异常捕获和错误处理机制,保证程序稳定运行 - 信号处理 :支持优雅退出,可通过Ctrl+C信号停止服务 ## 典型应用场景 - 作为后端服务的统一日志收集中心 - 多进程应用程序的日志集中管理解决方案 - 需要高效日志存储和灵活导出功能的应用场景 用户要求我写一下怎么编译和使用log2fpp软件。为了提供准确的编译指南,我需要先查看项目中的CMakeLists.txt文件,了解项目的构建配置。 # log2fpp (tinyLog) 编译与使用指南 ## 编译指南 ### 环境要求 - C++11 兼容的编译器(GCC 4.8+ 或 Clang 3.3+) - CMake 3.10 或更高版本 - Linux 操作系统(从CMakeLists.txt中的`__LINUX__`宏定义可见) - wheels C++工具库(项目依赖,路径配置为`/mnt/e/work/wheels/C++`) ### 编译步骤 1. **确保安装了必要的依赖** - 安装CMake:`sudo apt-get install cmake`(Ubuntu/Debian系统) - 确保已安装C++编译器:`sudo apt-get install build-essential` 2. **准备项目源码** - 确保wheels库已放置在正确位置或修改CMakeLists.txt中的WHEELS路径 3. **创建构建目录** ```bash cd e:/work/development/log2fpp mkdir build cd build ``` 4. **运行CMake生成构建文件** ```bash cmake .. ``` 5. **执行编译** ```bash make ``` 编译成功后,在build目录下将生成名为`tinylog`的可执行文件。 ## 使用指南 ### 基本用法 1. **启动日志服务** ```bash ./tinylog [选项] ``` 默认情况下,程序会使用管道(PIPE)作为IPC机制,日志文件路径为`./etc/log.tinyf`。 2. **命令行选项** 通过`-h`参数查看所有可用选项: ```bash ./tinylog -h ``` 主要选项包括: - `-v`:输出版本信息 - `-n <文件>`:指定日志文件名称 - `-t <类型>`:指定IPC类型(P 表示管道,U 表示Unix Socket) - `-u <名称>`:指定Unix Socket节点名称(当使用Unix Socket时有效) - `-p <大小>`:设置每条日志的最大尺寸(单位为字节) - `-c <数量>`:设置最大保存日志数量 - `-e <文件>`:将日志输出为.txt文件 - `-C <文件>`:清理日志 ### 常见使用场景 1. **基本日志服务** ```bash # 使用默认配置启动日志服务 ./tinylog ``` 2. **自定义日志配置** ```bash # 使用Unix Socket,自定义日志文件和参数 ./tinylog -t U -u /tmp/logsock -n /var/log/myapp.tinyf -p 512 -c 200000 ``` 3. **导出日志** ```bash # 将二进制日志导出为文本文件 ./tinylog -n /var/log/myapp.tinyf -e /var/log/myapp.log ``` 4. **清理日志** ```bash # 清空指定的日志文件 ./tinylog -n /var/log/myapp.tinyf -C ``` ### 集成到其他程序 要在其他程序中使用此日志服务,您需要: 1. 根据选择的IPC类型(管道或Unix Socket)实现相应的客户端代码 2. 将日志消息通过IPC发送到日志服务进程 3. 日志服务会自动接收、处理并存储这些日志消息 ### 注意事项 1. 程序默认以Debug模式构建,如果需要Release版本,可修改CMakeLists.txt中的`CMAKE_BUILD_TYPE`参数 2. 当日志条目大小超过设定的页面大小时,会自动折行处理到下一页面 3. 当存储的日志数量达到最大限制时,新的日志会自动覆盖最旧的日志 4. 程序支持通过Ctrl+C信号优雅退出 5. 确保运行程序的用户对日志文件路径有读写权限