C# Log4Net简单使用方法
2024-08-31 07:13:47
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
使用log4net,一个很明显的好处是可以提供多种等级的记录信息,通过配置可以在开发的不同阶段处理不同的记录信息,比.NET自带的Debug/Trace两个级别要丰富的多。
一.配置文件
(1)麻烦自行百度log4net的dll文件,然后添加引用。
如上,第一个就是Log4net。
(2)在assemblyInfo.cs里添加下面这句:
[assembly: log4net.Config.DOMConfigurator(Watch = true)]
在app.config里添加配置信息,如下(注意格式,startup放最后):
<configuration> <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"/>
</configSections> <log4net>
<logger name="logerror">
<level value="Error" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<logger name="logdebug">
<level value="DEBUG" />
<appender-ref ref="DebugAppender" />
</logger>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogDebug\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="" />
<param name="MaxFileSize" value="" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<调试>%m 时间:%d [%t] ;%n" />
</layout>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogError\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="" />
<param name="MaxFileSize" value="" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<异常>%m 时间:%d [%t] ;%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="" />
<param name="MaxSizeRollBackups" value="" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n<正常><时间:>%d %m[%t];%n" />
</layout>
</appender>
</log4net> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup> </configuration>
configurations写的是log4net版本信息。
log4net内分别写了Error DeBug Info三个级别的配置信息,log4net内含7个级别的log信息
(1)OFF (2)FATAL (3)ERROR (4)WARN (5)INFO (6)DEBUG (7)ALL (级别是从高到低)
配置信息的解释:
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
//日志的路径
<param name="File" value="Log\\LogDebug\\" />
//是否在文件中追加文件
<param name="AppendToFile" value="true" />
//最大变换数量
<param name="MaxSizeRollBackups" value="" />
//文件最大大小
<param name="MaxFileSize" value="" />
//日志文件名是否为静态
<param name="StaticLogFileName" value="false" />
//文件名称命名
<param name="DatePattern" value="yyyyMMdd".txt"" />
//按照文件的Data进行变换日志文件
<param name="RollingStyle" value="Date" />
//log输入内容(可以根据需求自行设置)
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<调试>%m 时间:%d [%t] ;%n" />
</layout>
</appender>
二.实例化log4net类
public class Log4netManager
{
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static readonly log4net.ILog logdebug = log4net.LogManager.GetLogger("logdebug"); /// <summary>
/// 输出正常运行信息
/// </summary>
/// <param name="info"></param>
public static void WriteInfo(string info)
{ if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
} /// <summary>
/// 输出异常运行信息
/// </summary>
/// <param name="info"></param>
public static void WriteError(string info)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info);
}
} /// <summary>
/// 输出调试信息
/// </summary>
/// <param name="info"></param>
public static void WriteDebug(string info)
{
if (logdebug.IsDebugEnabled)
{
logerror.Debug(info);
}
}
}
三.输出
public partial class MainWindow : Window
{ public MainWindow()
{
InitializeComponent();
Log4netManager.WriteError("error");
Log4netManager.WriteDebug("debug");
Log4netManager.WriteInfo("info"); }
}
四.打开文件所在位置
即可,见到该输出文件
最新文章
- WebBrowser打开Word文档的一些注意事项
- bzoj 3039 悬线法求最大01子矩阵
- Thinking in life(1)
- LA 3890 (半平面交) Most Distant Point from the Sea
- PHPCMS V9 简单的二次开发
- 安卓---下拉刷新---上拉加载---解决导入library等自生成库文件失败的问题
- Web前端:如何实现选择select下拉框选中跳转其他页面
- 你所不知道的 CSS 阴影技巧与细节
- java集合(list,set,map)
- Java Web解决跨域请求
- visual studio vode 汉化
- 开发Spring过程中几个常见异常(二):Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;a&#39; define
- PDF编辑方法,PDF怎么去除背景
- (14)其他Linux命令
- spring + quartz定时任务,以及修改定时任务
- noip模拟【array】
- 跟着刚哥学Redis
- ElasticSearch 2 (7) - 基本概念
- 20155216 2016-2017-2 《Java程序设计》第八周学习总结
- django 事务错误 -- Transaction managed block ended with pending COMMIT/ROLLBACK