log4net基本日志使用笔记[windows application]
2024-09-28 12:18:52
Ref: http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html
http://www.cnblogs.com/zhoufoxcn/archive/2010/11/23/2515616.html
一. log4net程序集下载
下载地址:http://logging.apache.org/log4net/download_log4net.cgi
(选择具体版本,最新版为1.2.15 log4net-1.2.15-bin-newkey.zip)
将对应dll添加到项目引用中。
具体操作参见 http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html
二. 配置log4net
如果还没有添加应用程序配置文件,则项目中添加app.config配置文件
配置内容及说明如下:
<?xml version="1.0"?>
<configuration>
<configSections>
<!--type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"-->
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections> <appSettings>
<!-- ...............-->
</appSettings> <!--Log4net 日志配置-->
<log4net>
<!--运行日志输出到文件中(回滚记录多文件中)-->
<appender name="LogFileAppender1" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置,默认与程序同目录里-->
<file value="logs\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="'Log1'_yyyyMMdd'.log'"/>
<staticLogFileName value="false"/>
<!--一个时间保留日志的数量-->
<param name="MaxSizeRollBackups" value="10"/>
<param name="maximumFileSize" value="10MB"/>
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2016-01-01 13:42:32 ,222 [filename;line] INFO Log4NetDemo.MainClass [(null)] - info-->
<!--conversionPattern value="%date [%file:%line] [%-5level] %logger[%property{NDC}] - %message%newline "-->
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss,fff} [%file:%line] [%-5level] - %message%newline "/>
</layout>
<!--记录INFO-FATAL级别信息-->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender> <!--统计日志输出到文件中-->
<appender name="LogFileAppender2" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="logs\\"/>
<appendToFile value="true"/>
<lockingModel value="log4net.Appender.FileAppemder.MinimalLock"/> <!--多个线程访问时最小锁实现-->
<rollingStyle value="Date"/>
<datePattern value="'Log2'_yyyyMMdd'.log'"/>
<staticLogFileName value="false"/>
<!--一个时间保留日志的数量-->
<param name="MaxSizeRollBackups" value="10"/>
<param name="maximumFileSize" value="10MB"/>
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2016-01-01 13:42:32 [filename;line] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%newline %date [%file:%line] [%-5level] %logger[%property{NDC}] - %message"/>
</layout>
<!--记录INFO-FATAL级别信息-->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender>
<!-- 默认采用root的话,则所有logger会同时写到对应文件中
<root>
<level value="ALL"/>
<appender-ref ref="LogFileAppender1"/>
<appender-ref ref="LogFileAppender2"/>
</root>
-->
<logger name="Log1">
<level value="ALL"/>
<appender-ref ref="LogFileAppender1"/>
</logger> <logger name="Log2">
<level value="ALL"/>
<appender-ref ref="LogFileAppender2"/>
</logger> </log4net>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Level级别:DEBUG <INFO<WARN<ERROR<FATAL
有关级别说明参考 http://blog.csdn.net/milk1626/article/details/5761738
有关写到文件还是数据库等及相关参数说明参考 http://www.cnblogs.com/zhoufoxcn/archive/2010/11/23/2515616.html
三. 实际使用
注意: 在AssemblyInfo.cs文件中加入[assembly: log4net.Config.XmlConfigurator(Watch = true)] 解析相关配置文件class LoggerHelper
{
//如果只是用root做默认处理的话,可以使用如下logger
//private static ILog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //log1 写入对应文件
private static ILog Logger1 = log4net.LogManager.GetLogger("Log1");
//log2 写入对应文件
private static ILog Logger2 = log4net.LogManager.GetLogger("Log2"); public static void Log1Info(string message)
{
Logger1.Info(message);
} public static void Log2Info(string message)
{
Logger2.Info(message);
}
} 在其他程序中要写日志到哪个文件中可以调用相应函数
最新文章
- .net垃圾回收机制编程调试试验
- python3-day1-python简介及入门
- js Date 时间格式化的扩展
- NYOJ-2 括号配对问题 -- 数据结构_堆栈
- OpenGl从零开始之坐标变换(下)
- Mac上安装Tomcat服务器
- JSONP 跨域解决办法
- Java按正则提取字符串
- vc操作电脑之常用命令
- Struts2超链接
- 【一天一道LeetCode】#172. Factorial Trailing Zeroes
- Git命令行管理代码、安装及使用
- mui选择器的坑
- cuda培训素材
- Confluence 6 PostgreSQL 输入你的数据库细节
- MySQL Workbench在archlinux中出现 Could not store password: The name org.freedesktop.secrets was not provided by any .service files的错误
- dell R740在安装完Esxi6.0U3之后出现存储器警告
- JAVA基础部分复习(四、抽象类与接口)
- Fragment 使用总结
- mongodb导出数据csv格式