一、配置文件log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- This section contains the log4net configuration settings -->
<log4net>
<appender name="RollingAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件路径,会自动创建-->
<file value="/C#/demo/log/" />
<param name="Encoding" value="utf-8" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log备份文件最大数量,超过设置数量会滚动覆盖之前的日志-->
<param name="MaxSizeRollBackups" value="5" />
<!--最大文件大小(KB/MB/GB)-->
<param name="MaximumFileSize" value="1GB" />
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2018-08-31.log-->
<datePattern value="'demo'yyyyMMdd'.log'" />
<!--日志滚动方式:混合方式(文件大小和日期)-->
<param name="RollingStyle" value="Composite" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %message%newline" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<logger name="RollingFileAppender">
<level value="ALL" />
<appender-ref ref="RollingAppender" />
</logger>
</log4net>
</configuration>
二、帮助类LoggerUtil
public class LoggerUtil
{
private static ILog logger;
static LoggerUtil()
{
if (logger == null)
{
var repository = LogManager.CreateRepository("NETCoreRepository");
XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
logger = LogManager.GetLogger(repository.Name, "RollingFileAppender");
}
}
public static void Info(string message, Exception exception = null)
{
if (exception == null)
{
logger.Info(message);
}
else
{
logger.Info(message, exception);
}
}
public static void Error(string message, Exception exception = null)
{
if (exception == null)
{
logger.Error(message);
}
else
{
logger.Error(message, exception);
}
}
public static void Warn(string message, Exception exception = null)
{
if (exception == null)
{
logger.Fatal(message);
}
else
{
logger.Fatal(message, exception);
}
}
}
三、调用方式
LoggerUtil.Info("字符串");
LoggerUtil.Error("字符串",ex);
LoggerUtil.Warn("字符串");