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

}

运行结果:

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

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

相关推荐
IT小哥哥呀2 分钟前
基于windows的个人/团队的时间管理工具
windows·c#·wpf·时间管理
牛十二2 分钟前
openclaw安装mcporter搜索小红书
开发语言·javascript·ecmascript
老刘说AI3 分钟前
WorkFlow Agent案例:auto_document_agent(文件自动处理)
开发语言·数据库·人工智能·python·神经网络·自然语言处理
时寒的笔记15 分钟前
js逆向05_ob混淆花指令,平坦流,某麦网(突破ob混淆寻找拦截器)
开发语言·前端·javascript
咸鱼2.019 分钟前
【java入门到放弃】杂记
java·开发语言
golang学习记1 小时前
Go 实时批处理:让数据库少挨点打 [特殊字符]
开发语言·数据库·golang
神の愛1 小时前
java的Aop
java·开发语言
左左右右左右摇晃1 小时前
ConcurrentHashMap ——put + get
java·开发语言·笔记
今夕资源网1 小时前
零基础 Python 环境搭建工具 一键安装 Python 环境自动配置 升级 pip、setuptools、wheel
开发语言·python·pip·环境变量·python环境变量·python自动安装
JosieBook1 小时前
【C#】C# 访问修饰符与类修饰符总结大全
前端·javascript·c#