c#使用log4net的3种调用方法

https://blog.csdn.net/summer_top/article/details/107961245

第一步:下载log4net。

右键项目引用,进入管理NuGet包。

搜索log4net,下载安装。

第二步:创建LogHelper类。

public class LogHelper

{

private LogHelper()

{

}

public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");

public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

public static void SetConfig()

{

log4net.Config.XmlConfigurator.Configure();

}

public static void SetConfig(FileInfo configFile)

{

log4net.Config.XmlConfigurator.Configure(configFile);

}

public static void WriteLog(string info)

{

if (loginfo.IsInfoEnabled)

{

loginfo.Info(info);

}

}

public static void WriteLog(string info, Exception se)

{

if (logerror.IsErrorEnabled)

{

logerror.Error(info, se);

}

}

}

第三步:配置Log4Net并输出日志,下面介绍三种调用方法。

方法一:在已有App.config中配置Log4Net。

App.config代码如下。

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configSections>

<!-- log4net的定义 -->

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

</configSections>

<log4net>

<logger name="logerror">

<level value="ERROR" />

<appender-ref ref="ErrorAppender" />

</logger>

<logger name="loginfo">

<level value="INFO" />

<appender-ref ref="InfoAppender" />

</logger>

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="Log\\LogError\\" />

<param name="AppendToFile" value="true" />

<param name="MaxSizeRollBackups" value="100" />

<param name="MaxFileSize" value="10240" />

<param name="StaticLogFileName" value="false" />

<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />

<param name="RollingStyle" value="Date" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />

</layout>

<!--&lt; &gt; = <> %n = 回车-->

</appender>

<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="Log\\LogInfo\\" />

<param name="AppendToFile" value="true" />

<param name="MaxFileSize" value="10240" />

<param name="MaxSizeRollBackups" value="100" />

<param name="StaticLogFileName" value="false" />

<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />

<param name="RollingStyle" value="Date" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />

</layout>

</appender>

</log4net>

</configuration>

在项目的 AssemblyInfo.cs 文件中注册Config文件

assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)

主程序调用:

public MainWindow()

{

InitializeComponent();

LogHelper.WriteLog("我是LogHelper日志输出:在已有App.config中配置Log4Net");

}

运行结果:

方法二:项目中创建新的log4net.config文件。

首先右键项目,添加新建项,添加新的应用程序配置文件log4net.config,log4net配置信息和方法一相同。

log4net.config代码如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<log4net>

<logger name="logerror">

<level value="ERROR" />

<appender-ref ref="ErrorAppender" />

</logger>

<logger name="loginfo">

<level value="INFO" />

<appender-ref ref="InfoAppender" />

</logger>

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="Log\\LogError\\" />

<param name="AppendToFile" value="true" />

<param name="MaxSizeRollBackups" value="100" />

<param name="MaxFileSize" value="10240" />

<param name="StaticLogFileName" value="false" />

<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />

<param name="RollingStyle" value="Date" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />

</layout>

<!--&lt; &gt; = <> %n = 回车-->

</appender>

<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="Log\\LogInfo\\" />

<param name="AppendToFile" value="true" />

<param name="MaxFileSize" value="10240" />

<param name="MaxSizeRollBackups" value="100" />

<param name="StaticLogFileName" value="false" />

<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />

<param name="RollingStyle" value="Date" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />

</layout>

</appender>

</log4net>

</configuration>

再设置log4net.config的属性:将 "复制到输出目录" 的值改为 如果较新则复制。

然后在项目的 AssemblyInfo.cs 文件中注册Config文件:

assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)

ConfigFile: 配置文件名和路径,包括扩展名,文件相对于程序的根目录。

ConfigFileExtension:配置文件的后缀名,缺省默认时'config',此属性不可和ConfigFile属性公用。

最后主程序调用:

public MainWindow()

{

InitializeComponent();

LogHelper.WriteLog("我是LogHelper日志输出:在项目中创建新的log4net.config文件");

}

运行结果:

方法三:显示调用配置文件

首先创建log4net.xml配置文件,代码如下。

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<log4net>

<logger name="logerror">

<level value="ERROR" />

<appender-ref ref="ErrorAppender" />

</logger>

<logger name="loginfo">

<level value="INFO" />

<appender-ref ref="InfoAppender" />

</logger>

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="Log\\LogError\\" />

<param name="AppendToFile" value="true" />

<param name="MaxSizeRollBackups" value="100" />

<param name="MaxFileSize" value="10240" />

<param name="StaticLogFileName" value="false" />

<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />

<param name="RollingStyle" value="Date" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />

</layout>

<!--&lt; &gt; = <> %n = 回车-->

</appender>

<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">

<param name="File" value="Log\\LogInfo\\" />

<param name="AppendToFile" value="true" />

<param name="MaxFileSize" value="10240" />

<param name="MaxSizeRollBackups" value="100" />

<param name="StaticLogFileName" value="false" />

<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />

<param name="RollingStyle" value="Date" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />

</layout>

</appender>

</log4net>

</configuration>

使用LogHelper类中SetConfig(FileInfo configFile)方法配置log4net。 log4net.Config.XmlConfigurator.Configure(FileInfo(path)),path为log4net.xml的全路径。

主程序调用:

public MainWindow()

{

InitializeComponent();

LogHelper.SetConfig(new FileInfo("D:\\Log4NetDemo\\log4net.xml"));

LogHelper.WriteLog("我是LogHelper日志输出:显示调用");

}

运行结果:

三种调用方法,都能够正常打印日志。

备注:如有疑问,可留言交流。

相关推荐
球求了8 分钟前
C++:继承机制详解
开发语言·c++·学习
张槊哲31 分钟前
函数的定义与使用(python)
开发语言·python
北辰浮光39 分钟前
[Mybatis-plus]
java·开发语言·mybatis
光而不耀@lgy1 小时前
C++初登门槛
linux·开发语言·网络·c++·后端
lkbhua莱克瓦241 小时前
用C语言实现——一个中缀表达式的计算器。支持用户输入和动画演示过程。
c语言·开发语言·数据结构·链表·学习方法·交友·计算器
Mr__Miss1 小时前
面试踩过的坑
java·开发语言
啊丢_1 小时前
C++——Lambda表达式
开发语言·c++
Chh07152 小时前
《R语言SCI期刊论文绘图专题计划》大纲
开发语言·r语言
Yeats_Liao2 小时前
Go 语言 TCP 端口扫描器实现与 Goroutine 池原理
开发语言·tcp/ip·golang
Thomas_YXQ3 小时前
Unity3D IK解算器技术分析
开发语言·搜索引擎·unity·全文检索·unity3d·lucene