# CloudLog **Repository Path**: hsav20/CloudLog ## Basic Information - **Project Name**: CloudLog - **Description**: CloudLog是一款功能强大的日志管理工具,可以接收来自电脑、手机和嵌入式系统(如Stm32单片机)等的日志,并实现统一的保存、处理和显示。本地、远程及云端都使用,支持从windows XP到windows 11。工程师们最喜欢使用的云控日志CloudLog - **Primary Language**: C - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2023-07-10 - **Last Updated**: 2024-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CloudLog是一款功能强大的日志管理工具,可以接收来自电脑、手机和嵌入式系统(如stm32单片机)等的日志,并实现统一的保存、处理和显示。无论您是在本地使用还是远程及云端使用,CloudLog都能满足您的需求。 #### 对于电脑及嵌入式系统本地使用,推荐以下方法: 1. Windows电脑应用软件可以优先使用WM_COPYDATA消息,它占用资源最少且速度最快。 2. 如果您的应用软件已经带有UDP或TCP功能,可以直接使用原有的Socket将日志发送到127...1。 3. 对于嵌入式系统的本地调试,您可以使用串口、USB或网口进行通信。 #### 对于远程及云端日志使用,您可以考虑以下方法: 1. 在路由器中使用转发功能,将对应的端口转发到运行CloudLog的电脑上。 2. 使用动态域名系统(DDNS)获取电脑所在的IP地址,以便远程访问。 3. 在服务器上使用云控域名账号保存日志,这样您随时可以打开CloudLog并回读所有未读过的日志。 #### CloudLog使用了一些关键的日志元素,包括: 1. 日志等级(Log Level):用于确认日志的重要性。 2. 日期时间Tick(Date Time tick):用于确认日志生成的时刻。 3. 应用名(App Name):用于确认日志来源的项目或进程。 4. 标签(Tag):用于按模块化区分日志。 5. 线程标识符(Thread Identity):用于区分多线程。 6. 文字内码(Text Code):用于实时调整当前的内码。 7. 日志文字(Log Text):可以使用任何内码表示日志内容。 8. 日志缓冲(Log Buffer):可以传送阵列缓冲的日志内容。 9. 计时:可以根据前一条日志的tick计算出精确到1微秒的用时。 #### CloudLog支持多种日志等级,用于标识日志的重要程度和用途,包括: 1. Error:严重的问题或软件执行功能错误,级别最高,不可以屏蔽。 2. Warn:可能出现潜在错误的情形,选择为Error级别时不显示。 3. Info:强调应用程序运行过程的一些重要信息。 4. Debug:仅在开发期间有用的调试消息,级别较低,一般不会在正式发布时出现。 5. Buffer:阵列数值直接显示级别与Debug相同。 6. Fixer:固定位置显示日志,不保存到log文件。 #### 除了日志等级过滤外,CloudLog还支持其他过滤器功能,包括: 1. 根据日志等级及各种组合来过滤日志记录。 2. 关键词高亮显示,并可以调整字体加粗、颜色突出显示。 3. 可以选择从日志文字中指定关键词不显示或显示。 4. 可以选择从应用名中指定关键词显示。 5. 可以选择从标签中指定关键词显示。 #### CloudLog使用键值对风格的文字表示日志信息,具体包括: 1. 使用'&'分隔各个日志元素,元素由键值':'数值组成。 2. 日期时间Tick、日志文字及日志缓冲的数值使用Base64编码。 3. 应用名、标签及线程标识符通常只使用数字或字母。 4. 日期时间可以选择不传送、2字节的毫秒、3字节的微秒或8字节的完整时间。 5. 一个简单的示例:"hello"日志可以表示为:ll:D<aGVsbG8= #### 除了键值对风格的文字格式,CloudLog还支持简易风格的文字格式,具体特点如下: 1. 使用空格分隔各个日志元素,不能调换元素的顺序。 2. 最少包含日志等级(LL)和文字信息(LT)。 3. 日志缓冲(LB)表示为LL+LT4+文字,其中LT4表示4位数值从000到9999代表最大10秒的毫秒tick。 4. 标签(TAG)用于按模块化区分日志,一般使用字母表示。 5. 线程标识符(TI)为-9的数字表示线程标识符。 6. 文字内码(TC)可以表示为G=GBK内码或U=UTF-8内码。 #### 如果您想使用开源库CloudLog,可以按照以下步骤进行: 1. 直接从https://gitee.com/hsav20/CloudLog.git克隆该库。 2. 将CloudLog.c和CloudLog.h文件添加到您的项目中。 3. 在PlatformX目录中,选择一个与您平台最接近的模板文件(例如FwbConf.h),并将其复制到您的项目中。 4. 修改FwbConf.h文件的配置,以适应您的使用环境。 5. 参考PlatformWindows目录下的main.c文件,您可以输出各种类型的日志。 6. PlatformWindows\KeysGbk或KeysUtf8可直接运行xmake编译。 #### 如果您需要进一步了解CloudLog的用法或有其他问题,欢迎咨询。