winform中跨层使用log4net
log4net是一个基于Apache log4j的日志框架,用于.NET应用程序。它提供了灵活的日志记录机制,包括多种日志级别(如DEBUG、INFO、WARN、ERROR、FATAL)和丰富的配置选项。在C#中使用log4net库来记录日志是一种常见且强大的方式。
https://logging.apache.org/log4net/index.html
测试版本号 log4net:3.2.0.0 net:8.0
跨层使用log4net的步骤是:
一、安装log4net
通过NuGet包管理器来安装log4net。
注意:在调用log4net的层中,都需要引用log4net。
二、配置log4net
在公共层command中新建文件夹log。
在log中设置log4net的配置文件log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<root>
<!—最底层级别,从低到高依次为ALL、DEBUG、INFO、WARN、ERROR、FATAL –>
<level value="DEBUG"/>
<!—日志信息输出到文件 à
<appender-ref ref="RollingFileAppender"></appender-ref>
</root>
//目标文件消息设置
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<!—文件名 à
<file type="log4net.Util.PatternString" value="logs\%date{yyyy-MM-dd}.log"/>
<!—是否追加写入 à
<appendToFile value="true" />
<!—文件大小及超出后的备用文件数 à
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB"/>
<staticLogFileName value="true" />
<!—信息输出格式 à
<layout type="log4net.Layout.PatternLayout">
<!—应用程序启动时 à
<param name="Header" value="
 ------------------ 启动 ------------------- 

"/>
<!—应用程序关闭时 à
<param name="Footer" value="
 -------------------关闭-------------------- 

"/>
<!—应用程序运行时要记录的日志格式 à
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%-5level] thread:%thread mess:%message%newline"/>
</layout>
</appender>
</log4net>
</configuration>
三、日志工具文件 Log类
public class Log
{
//获取log4net中日志实例
static readonly ILog log = LogManager.GetLogger(typeof(Log));
public static void Info(string message)
{
log.Info(message);
}
public static void Warning(string message)
{
log.Warn(message);
}
public static void Error(string message)
{
log.Error(message);
}
public static void Debug(string message)
{
log.Debug(message);
}
public static void Fatal(string message)
{
log.Fatal(message);
}
}
四、启动配置
(一)在项目启动层的主文件Program.cs中初始化日志配置internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "log\\log4net.config")));
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
(二)在项目中需要输出的代码中输出日志信息
try
{
……
}
catch (Exception ex)
{
Log.Error($" {ex.Message},请检查...");
}
浙公网安备 33010602011771号