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日志输出:显示调用");

}

运行结果:

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

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

相关推荐
未知陨落39 分钟前
数据结构——二叉搜索树
开发语言·数据结构·c++·二叉搜索树
大波V539 分钟前
设计模式-参考的雷丰阳老师直播课
java·开发语言·设计模式
无敌最俊朗@1 小时前
unity3d————接口基础知识点
开发语言·c#
一丝晨光1 小时前
gcc 1.c和g++ 1.c编译阶段有什么区别?如何知道g++编译默认会定义_GNU_SOURCE?
c语言·开发语言·c++·gnu·clang·gcc·g++
南城花随雪。2 小时前
Spring框架之装饰者模式 (Decorator Pattern)
java·开发语言·装饰器模式
究极无敌暴龙战神X2 小时前
前端学习之ES6+
开发语言·javascript·ecmascript
虞书欣的62 小时前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
金蝶软件小李2 小时前
C#界面设计
计算机视觉·c#
FHYAAAX2 小时前
【机器学习】任务十:从函数分析到机器学习应用与BP神经网络
开发语言·python
汉克老师2 小时前
GESP4级考试语法知识(贪心算法(四))
开发语言·c++·算法·贪心算法·图论·1024程序员节