NuGet添加引用
Install-Package log4net
添加 Log4net.config 文件,并设置为“Copy Always”
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- 将日志输出到控制台 -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!-- 将日志输出到文件 -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="SyscoTRAC" /> <!--log文件名-->
<param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'" /> <!--归档log文件名-->
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] %level [%thread][%c{1}:%line] - %m%n" />
</layout>
</appender>
<root>
<!-- 控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF -->
<!-- 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 -->
<!-- 如果没有定义LEVEL的值,则缺省为DEBUG -->
<level value="ALL" />
<!-- 将日志输出到控制台 -->
<appender-ref ref="ConsoleAppender" />
<!-- 将日志输出到文件 -->
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
</configuration>
在 AssemblyInfo.cs 末尾添加:Tell log4net to Load Your Config
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]
初始化log4net
/// <summary>
/// https://blog.csdn.net/jiangguilong2000/article/details/77102709
/// https://www.cnblogs.com/pangkang/p/5833519.html
/// https://www.cnblogs.com/yonghuacui/p/6165262.html
/// </summary>
class LoggerFactory
{
//初始化并设置日志路径
private static ILog _log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public static ILog GetLog()
{
return _log;
}
}
开始使用
ILog log = LoggerFactory.GetLog();
log.InfoFormat("Start ticket:{0}",ticketNum);
log.WarnFormat("ticket not exist in Transcend!");