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

}

运行结果:

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

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

相关推荐
1zero10几秒前
[C语言笔记]09、指针
c语言·开发语言·笔记
青橘MATLAB学习5 分钟前
钢管下料问题:基于Matlab的优化求解与实践
开发语言·数学建模·matlab·钢管下料
褚翾澜15 分钟前
Ruby语言的代码重构
开发语言·后端·golang
古力德1 小时前
Unity中造轮子:定时器
c#·unity3d
小码编匠2 小时前
C# 实现西门子S7系列 PLC 数据管理工具
后端·c#·.net
我不会编程55521 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄21 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
“抚琴”的人1 天前
【机械视觉】C#+VisionPro联合编程———【六、visionPro连接工业相机设备】
c#·工业相机·visionpro·机械视觉
无名之逆1 天前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
似水এ᭄往昔1 天前
【C语言】文件操作
c语言·开发语言