App.config
<configSections>
<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>
<logger name="logconsole">
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</logger>
<logger name="logrun">
<level value="INFO" />
<appender-ref ref="RunAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\ErrorLog\" />
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\InfoLog\" />
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %m%n" />
</layout>
</appender>
<appender name="RunAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\RunLog\" />
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
</log4net>
LogHelper.cs
public class LogHelper
{
public static ILoggerRepository repository ;
//log4net日志专用
public static log4net.ILog loginfo;
public static log4net.ILog logerror;
public static log4net.ILog logrun;
public static void SetConfig()
{
string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
string configFilePath = assemblyDirPath + "\\App.config";
repository = LogManager.CreateRepository("LogHelper");
XmlConfigurator.Configure(repository, new FileInfo(configFilePath));
loginfo = log4net.LogManager.GetLogger(repository.Name, "loginfo");
logerror = log4net.LogManager.GetLogger(repository.Name, "logerror");
logrun = log4net.LogManager.GetLogger(repository.Name, "logrun");
}
public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
}
/// <summary>
/// 普通的文件记录日志
/// </summary>
/// <param name="info"></param>
public static void WriteLog(string info)
{
loginfo.Info(info);
}
/// <summary>
/// 普通的文件记录日志
/// </summary>
/// <param name="info"></param>
public static void WriteRun(string info)
{
if (logrun.IsInfoEnabled)
{
logrun.Info(info);
}
}
/// <summary>
/// 错误日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
/// <summary>
/// 职责名称
/// </summary>
private string repositoryName;
/// <summary>
/// 日志级别
/// </summary>
private string level;
/// <summary>
/// 初始化
/// </summary>
/// <param name="repositoryName">职责名称</param>
/// <remarks>解决任务和日志对应问题</remarks>
public LogHelper(string repositoryName, string level)
{
this.repositoryName = repositoryName;
this.level = level;
}
}
使用
LogHelper.WriteRun(“");
LogHelper.WriteLog(“");