WinForm log4net使用
1.引入log4net.dll
2.创建log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--Log4Net-->
<!-- Level的级别,由高到低 -->
<!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL-->
<!-- 解释:如果level是ERROR,则在cs文件里面调用log4net的info()方法,则不会写入到日志文件中-->
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value=".\log\log_%date{yyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<!--<datePattern value="yyyyMMddhhmmss'.log'"/>-->
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header--------------------------
" />
<param name="Footer" value=" ----------------------footer--------------------------
" />
</layout>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value=".\log\error_%date{yyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<!--<datePattern value="yyyyMMddhhmmss'.log'"/>-->
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header--------------------------
" />
<param name="Footer" value=" ----------------------footer--------------------------
" />
</layout>
</appender>
<appender name="WarnAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value=".\log\warning_%date{yyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<!--<datePattern value="yyyyMMddhhmmss'.log'"/>-->
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header--------------------------
" />
<param name="Footer" value=" ----------------------footer--------------------------
" />
</layout>
</appender>
<!--<root>
<level value="All" />
<appender-ref ref="RollingLogFileAppender" />
</root>-->
<logger name="Error">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="Info">
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<logger name="Warning">
<level value="INFO" />
<appender-ref ref="WarnAppender" />
</logger>
</log4net>
<!--log4net配置end-->
<!--private static ILog log = LogManager.GetLogger("Test");
log.Error("错误", new Exception("发生了一个异常"));//错误
log.Fatal("严重错误", new Exception("发生了一个致命错误"));//严重错误
log.Info("信息"); //记录一般信息
log.Debug("调试信息");//记录调试信息
log.Warn("警告");//记录警告信息-->
</configuration>
3.AssemblyInfo.cs中添加如下
// 指定log4net 的配置文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
4.log4net.config 右键 - 属性 - 高级
复制到输出目录 - 如果较新则复制
5. private static ILog log = LogManager.GetLogger("");
6.新建LogHelper类
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AttachmentsExport
{
public class LogHelper
{
/// <summary>
/// 普通日志
/// </summary>
/// <param name="message">日志内容</param>
public static void Info(string message)
{
ILog log = LogManager.GetLogger("Info");
if (log.IsInfoEnabled)
{
log.Info(message);
}
}
/// <summary>
/// 错误日志带异常
/// </summary>
/// <param name="message">错误日志</param>
public static void Error(string message, Exception ex)
{
ILog log = LogManager.GetLogger("Error");
if (log.IsErrorEnabled)
{
log.Error(message, ex);
}
}
/// <summary>
/// 错误日志不带异常
/// </summary>
/// <param name="message">错误日志</param>
public static void Error(string message)
{
ILog log = LogManager.GetLogger("Error");
if (log.IsErrorEnabled)
{
log.Error(message);
}
}
public static void Warning(string message)
{
ILog log = LogManager.GetLogger("Warning");
if (log.IsWarnEnabled)
{
log.Warn(message);
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架