log4net 按天记录
来源:互联网 发布:福临门秋田小町 知乎 编辑:程序博客网 时间:2024/06/05 11:05
由于最近在使用log4net纪录文件日志,但是每天产生的日志比较多,所以就需要按天来生产日志文件,也就是说,一天有一个日志文件,以yyyyMMdd_log.txt的格式来命名,这样有利于日志管理,所以对log4net进行了改进,以支持此项功能。经过修改后,我多了个配置属性dateOn,这是一个开关,用来设置是否支持按日期产生日志文件,true为支持,false为不支持。
<file value="log-file.txt"/>
<dateOn value="true"/>
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>
修改的文件有:FileAppender.cs,AppenderAttachedImpl.cs,XmlHierarchyConfigurator.cs
FileAppender.cs的修改如下:
1) 增加两个属性,如下:
/// <summary>
/// 功能:当为真时,日志将以日期为单位来命名日志文件
/// </summary>
public bool DateOn
{
get { return m_dateOn; }
set { m_dateOn = value; }
}
private string m_logFileName;
/// <summary>
/// 日志文件名
/// </summary>
public string LogFileName
{
get { return m_logFileName; }
set { m_logFileName = value; }
}
3) 修改方法:Reset() 把m_fileName换成m_logFileName
AppenderAttachedImpl.cs的修改如下:
1)添加方法,如下:
/// 产生日志文件名
/// </summary>
/// <returns></returns>
private string CreateLogName()
{
return DateTime.Now.ToString("yyyyMMdd");
}
2)修改方法:AppendLoopOnAppenders(LoggingEvent loggingEvent) 在代码:appender.DoAppend(loggingEvent);前面添加如下代码:
{
if(((FileAppender)(appender)).DateOn) //是否打开以日期来产生日志文件的功能
{
((FileAppender)(appender)).LogFileName = this.CreateLogName()+"_"+((FileAppender)(appender)).File;
}
else
{
((FileAppender)(appender)).LogFileName = ((FileAppender)(appender)).File;
}
((FileAppender)(appender)).ActivateOptions();
}
XmlHierarchyConfigurator.cs的修改如下:
1)修改方法:ParseAppender(XmlElement appenderElement) 把原来的代码:
if (optionHandler != null)
{
optionHandler.ActivateOptions();
}
{
IOptionHandler optionHandler = appender as IOptionHandler;
if (optionHandler != null)
{
optionHandler.ActivateOptions();
}
}
以上是个人的改进心得,希望给有同样需求的朋友有所帮助!
- log4net 按天记录
- 日志记录 Log4net
- 使用log4net记录日志
- log4net 日志记录插件
- 使用Log4net记录日志
- log4net使用记录
- 使用Log4net记录日志
- 使用Log4net记录日志
- 日志记录组件[Log4net]
- Log4net记录日志
- log4net记录日志
- 使用Log4net记录日志
- 使用Log4Net记录日志
- C#Log4net日子记录
- 日志记录:Log4net
- Log4net日志记录示例
- 日志记录组件[Log4net]简介
- net日记记录log4net用法
- Linux 2.6.19.x 内核编译配置选项简介
- js中替换字符的一些用法,传值,分割
- http://bbs.chinaunix.net/thread-1676942-8-1.html
- D3D啊~~为什么你这么麻烦
- hdu 1548 A strange lift BFS 解法
- log4net 按天记录
- ant1.7 javac out of memory(超过)
- C#枚举所有的窗体的两种方法
- 婚前准备(转)
- MTK手机软件系统工程和配置简介
- Synchronize with Driver loading/Unloading
- C++笔记——c++编程思想(上)第四五六章数据抽象、初始化与清除
- XNA学习笔记——相机设置
- 中移动衰退? 2302亿元现金是批驳砝码(转)