轻量级.Net开源日志组件--AHCT.Log.NLogger
来源:互联网 发布:ubuntu mathtype 编辑:程序博客网 时间:2024/05/22 14:34
AHCT.Log.NLogger是一个轻量级的.Net开源日志组件,通过使用它,我们只须通过一个配置文件的简单配置,不需要修改应用程序代码,就可以控制各种日志信息异步输出到log文件。
1、配置说明
配置节关键字
配置说明
_LOG_LEVEL_
日志级别配置,配置内容为:DEBUG|INFO|WARN|ERROR|FATAL (默认 ERROR)。如果配置为DEBUG,则记录DEBUG,INFO,WARN,ERROR,FATAL的log信息;如果配置为INFO则只记录INFO,WARN,ERROR,FATAL的log信息,而DEBUG信息不会记录。依次类推。
_LOG_FILE_
日志文件路径+文件名(不含文件扩展名),(如果配置节_LOG_FILE_未配置,则取默认值,默认文件名NLogger);建议这里明确填写具体完整的绝对路径(例如:C:\Log\NLogger,日志记录到C:\Log\目录下(如果目录不存在则会自动创建),日志文件名以NLogger为前缀开头)。
_LOG_FILE_MAX_SIZE_
日志文件的最大长度(单位:字节,不得小于1024字节,即1K), 默认1M(1M = 1*1024*1024=1048576)
当日志文件超过该配置值时会自动重建。
_LOG_SPLIT_
日志文件是否按名字空间分开存储标示,默认false。false:不分开,全部记录到一个文件;true:分开,按名字空间分开记录到各个文件。
_LOG_NS_DIV_COUNT_
当日志文件按命名空间分开存储时(即_LOG_SPLIT_=TRUE),命名空间长度最大截取到第几分段(以“.”分割)(该值必须大于0,方有效),(可选)默认命名空间全称
_LOG_NS_MAXLENGTH_
当日志文件按命名空间分开存储时(即_LOG_SPLIT_=TRUE),命名空间截取的最大长度(该值必须大于0,方有效),(可选)默认命名空间全称
_LOG_ASYN_
日志 异步写入标示(默认false) true使用异步方法写日志;false不使用异步方法写日志。
_LOG_ASYN_WAIT_
异步写入时,当日志队列为空的等待毫秒数 (必须大于等于0,为0则没有等待时间(较耗资源);可不配置,默认100毫秒)(_LOG_ASYN_必须配置TRUE,该项才起作用)
_LOG_ASYN_IS_DAEMON_
异步写入线程是否设置为后台线程。(对应Thread.IsBackground属性) TRUE后台线程,FALSE普通(默认FALSE)(_LOG_ASYN_必须配置TRUE,该项才起作用)
_LOG_FILE_SAVE_TIME_
日志文件的保存时间(单位:天,整数-默认30天)(值大于零方有效)
配置节关键字是区分大小写的,要求全部大写,所有配置项都有默认值,不需要全部配置,可根据实际需要进行选择。配置项在系统首次加载时进行初始化,再次修改配置项需重启应用程序。日志级别可在线修改,适时记录不同的日志。日志文件的扩展名为(.log)。
这里的配置节可放在web.config或App.config中的appSettings节配置,当然也可以在指定的[key=value]配置文件中统一配置。若需要在配置文件中统一配置,需将该配置文件在当前系统环境变量中加入变量_LOG_ENV_CONFIG_FILE_,其值指向该配置文件的全路径。环境变量中还可以设置另一变量_LOG_ENV_PATH_FILE_,其值指向日志文件的存储路径,日志文件的存储路径寻址顺序是:如果配置节_LOG_FILE_未配置,则取该环境变量的值;如果环境变量值_LOG_ENV_PATH_FILE_也未配置则取%TEMP%对应的值;如果该%TEMP%值也没有则取当前运行程序所在目录。对于Web程序运行程序所在运行路径,在对应的IDE目录下(以VS2005为例,在Microsoft Visual Studio8\Common7\IDE\)。
2、日志组件的使用
AHCT.Log.NLogger日志组件的使用简单,只须引入AHCT.Log.NLogger即可,AHCT.Log.NLogger提供五种级别的日志记录(DEBUG|INFO|WARN|ERROR|FATAL),最低DEBUG,最高FATAL,当配置的级别大于等于对应级别时,会自动记录日志,如:当前配置_LOG_LEVEL_值为ERROR时,DEBUG|INFO|WARN三种级别日志将直接跳过不记录,ERROR|FATAL级别的日志会记录。AHCT.Log.NLogger提供了单实例接口NLogger.GetInstance(),支持多线程并发操作,使用时可直接调用获取日志实例对象。同时各级别日志记录接口(Debug|Info|Warn|Error|Fatal)均有不同的重载方式。另外,日志文件会自动管理,自动执行压缩或将过期文件自动删除,以节省存储空间。
示例代码如下:
using AHCT.Log;
NLogger.GetInstance().Debug("DemoTest打印Debug日志。");
NLogger.GetInstance().Info("DemoTest打印Info日志。");
NLogger.GetInstance().Warn("DemoTest打印Warn日志。");
NLogger.GetInstance().Error("DemoTest打印Error日志。");
NLogger.GetInstance().Fatal("DemoTest打印Fatal日志。");
NLogger logger = NLogger.GetInstance();
logger.Debug("测试环境打印出的Debug日志");
logger.Info("测试环境打印出的Info日志");
logger.Warn("测试环境打印出的Warn日志");
logger.Error("测试环境打印出的Error日志");
logger.Fatal("测试环境打印出的Fatal日志");
开源地址:
http://my.oschina.net/ahchutao
http://www.oschina.net/p/ahct-log-nlogger
http://git.oschina.net/lxchutao/AHCT.Log.NLogger
- 轻量级.Net开源日志组件--AHCT.Log.NLogger
- 轻量级Java开源日志组件--ahct.log.JLogger
- 轻量级日志类Log
- 轻量级日志组件
- .NET轻量级ORM组件Dapper修炼手册
- .NET轻量级ORM组件Dapper葵花宝典
- UtilBox(ub)基础组件 -- Log日志(1)
- UtilBox(ub)基础组件 -- Log日志(2)
- Android 轻量级简单易用的日志组件
- 开源日志组件logback
- 开源日志关联系统 opensource log Correlation
- seci-log 开源日志分析软件发布了
- Log日志
- Log日志
- log日志
- log 日志
- Log日志
- log日志
- 解决 驱动创建设备节点时 权限为 root只读只写 的问题
- Minimum Path Sum
- C++Primer第五版 1.4.4节练习
- Java_jdbc 基础笔记之十三 数据库连接(DAO)
- 汇编语言基础学习
- 轻量级.Net开源日志组件--AHCT.Log.NLogger
- java中对象的理解
- Pixel binning
- Tomcat搭建资源服务器
- hibernate中对象的三种状态分析
- 树状数组(一)
- C++ Primer Plus 第6版 中文版 第6章编程练习
- notification 点击响应 以及启动activity的坑
- 《剑指offer》数值的整数次方