开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1572|回复: 69
收起左侧

[易语言成品模块] ShowLog日志框架

[复制链接]
结帖率:100% (34/34)
发表于 2025-5-29 14:09:21 | 显示全部楼层 |阅读模式   湖北省十堰市
分享例程
界面截图:
备注说明: c语言写的dll供易语言调用,喜欢的人多就开源

ShowLog 日志库使用文档

简介

ShowLog 是一个高性能的 Windows 平台日志库,支持多线程、异步写入、缓冲池管理等特性。它提供了一个可视化的日志窗口,支持颜色显示,并能够自动管理日志文件。
(c语言写的dll供易语言调用,喜欢的人多就开源)

特性

  • 高性能异步日志写入
  • 双缓冲池设计,避免 I/O 阻塞
  • 支持控制台可视化输出,带颜色区分
  • 自动日志文件管理和轮转
  • 线程安全设计
  • 支持 GBK 编码
  • 防止意外关闭的日志窗口保护机制

API 说明

初始化函数

BOOL InitLogger(
    const char* logDir,        // 日志文件保存目录
    int bufferSize,           // 缓冲区大小(字节),0表示使用默认值16MB
    int flushInterval,        // 异步刷新间隔(毫秒)
    BOOL asyncWrite,          // 是否启用异步写入
    BOOL enableConsole        // 是否启用控制台窗口
);

写日志函数

void WriteLog(
    const char* content1,     // 主要日志内容
    const char* content2,     // 附加日志内容
    WORD bgColor,            // 背景色(控制台显示用)
    WORD textColor          // 文字颜色(控制台显示用)
);

控制台管理函数

void ShowLogWindow(void);    // 显示日志窗口
void HideLogWindow(void);    // 隐藏日志窗口
void ClearLogWindow(void);   // 清空日志窗口内容

清理函数

void CleanupLogger(void);    // 清理资源,关闭日志系统

使用示例

#include "logger.h"

int main() {
    // 初始化日志系统
    if (!InitLogger("./logs", 0, 1000, TRUE, TRUE)) {
        return 1;
    }

    // 写入不同级别的日志
    WriteLog("INFO", "这是一条信息日志", 0, 7);     // 白色文字
    WriteLog("WARN", "这是一条警告日志", 0, 14);    // 黄色文字
    WriteLog("ERROR", "这是一条错误日志", 0, 12);   // 红色文字

    // 隐藏日志窗口
    HideLogWindow();

    // 稍后再显示
    ShowLogWindow();

    // 清理资源
    CleanupLogger();
    return 0;
}

颜色代码参考

文字颜色:

  • 0 = 黑色
  • 1 = 深蓝色
  • 2 = 深绿色
  • 3 = 湖蓝色
  • 4 = 深红色
  • 5 = 紫色
  • 6 = 黄褐色
  • 7 = 白色
  • 8 = **
  • 9 = 蓝色
  • 10 = 绿色
  • 11 = 浅蓝色
  • 12 = 红色
  • 13 = 粉色
  • 14 = 黄色
  • 15 = 亮白色

背景色:

  • 0 = 黑色
  • 16 = 深蓝色
  • 32 = 深绿色
  • 48 = 湖蓝色
  • 64 = 深红色
  • 80 = 紫色
  • 96 = 黄褐色
  • 112 = 白色

注意事项

  1. 确保在程序退出前调用 CleanupLogger() 以正确释放资源
  2. 日志文件名格式为:log_YYYYMMDD_HHMMSS.log
  3. 异步写入模式下,日志内容可能会有少量延迟写入文件
  4. 控制台窗口被设计为不可通过常规方式关闭,需要通过 API 控制
  5. 建议使用异步写入模式以获得更好的性能

性能优化建议

  1. 对于高频日志,建议使用异步写入模式
  2. 根据实际需求调整缓冲区大小
  3. 合理设置刷新间隔,过短的间隔可能影响性能
  4. 不需要显示时及时隐藏日志窗口

最佳实践

  1. 在程序启动时初始化日志系统
  2. 使用适当的日志级别和颜色区分不同类型的日志
  3. 定期检查日志文件大小和数量
  4. 在开发阶段启用控制台,发布时可以禁用
  5. 使用预定义的颜色常量而不是直接使用数字

版本历史

v1.0.0

  • 初始版本发布
  • 支持基本的日志功能
  • 实现控制台窗口管理




下载地址:回复可见
https://wwmn.lanzoum.com/iYsU32xgq1aj

点评

楼下的,可以写入   湖北省十堰市  发表于 2025-6-1 13:11
日志能写入文件吗?   江西省九江市  发表于 2025-6-1 12:45
关闭日志显示控制台保存日志速度能起飞哦   湖北省十堰市  发表于 2025-5-29 17:14

评分

参与人数 2好评 +1 精币 +2 收起 理由
kyo9766 + 1 感谢分享,很给力!~
小李哥v5 + 1 + 1 感谢发布原创作品,精易因你更精彩!

查看全部评分


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。

本帖被以下淘专辑推荐:

结帖率:100% (3/3)

签到天数: 26 天

发表于 5 小时前 | 显示全部楼层   山东省青岛市
很好用,感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/6)

签到天数: 18 天

发表于 前天 23:59 | 显示全部楼层   江苏省南京市
学习一下
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 16 天

发表于 3 天前 | 显示全部楼层   广东省东莞市
大佬就是大佬,来学习一下
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 10 天

发表于 4 天前 | 显示全部楼层   广西壮族自治区南宁市
6666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:63% (25/40)

签到天数: 5 天

发表于 5 天前 | 显示全部楼层   浙江省绍兴市
学习一下学习一下
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2025-6-22 10:34:51 | 显示全部楼层   江西省宜春市

关闭日志显示控制台保存日志速度能起飞哦
回复 支持 反对

使用道具 举报

签到天数: 25 天

发表于 2025-6-21 22:51:41 | 显示全部楼层   江西省南昌市
学习下学习下学习下学习下学习下
回复 支持 反对

使用道具 举报

结帖率:98% (48/49)

签到天数: 19 天

发表于 2025-6-18 20:44:35 | 显示全部楼层   内蒙古自治区呼伦贝尔市

学习下学习下学习下学习下学习下
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 10 天

发表于 2025-6-18 02:58:35 | 显示全部楼层   香港特别行政区*
@douyin=101&
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表