在独立的配置文件中只需要修改几个地方就能完成:
1. 新建一个配置文件,log4net.config配置方法同成web.config或app.config一致;
2.如果windows应用程序请把配置文件设为:复制到输出目录 修改方法:在log4net.config上右击-->属性--->把"复制到输出目录" 值改为true;
3.在要用到log4的地方命名空间上边加上:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
到此,日志就行顺利记录了.
具代码如下:
log4net.config配置文件:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!--日志以流的方式输出并保存至C:\SiteLog\WeeklyReport\yyyy-MM.LOG文件中 -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\SiteLog\WeeklyReport\" />
<datePattern value="yyyy-MM.LOG" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%-5level] %n -- %m%n" />
</layout>
</appender>
<logger name="WeeklyReportLogger">
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
</log4net>
</configuration>
在使用Log4net类代码:
using System;
using log4net;
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)]
namespace WeeklyReport.WebUI.Utilities
{
public sealed class Log4Logger
{
private static readonly ILog log = LogManager.GetLogger("WeeklyReportLogger");
static Log4Logger() { log4net.Config.XmlConfigurator.Configure(); }
/// <summary>
/// 毁灭性的错误
/// </summary>
/// <param name="msg"></param>
public static void Fatal(object msg)
{
if (log.IsFatalEnabled)
log.Fatal(msg);
}
/// <summary>
/// 毁灭性的错误
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Fatal(object msg, Exception ex)
{
if (log.IsFatalEnabled)
log.Fatal(msg, ex);
}
/// <summary>
/// 错误
/// </summary>
/// <param name="msg"></param>
public static void Error(object msg)
{
if (log.IsErrorEnabled)
log.Error(msg);
}
/// <summary>
/// 错误
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Error(object msg, Exception ex)
{
if (log.IsErrorEnabled)
log.Error(msg, ex);
}
/// <summary>
/// 警告
/// </summary>
/// <param name="msg"></param>
public static void Warn(object msg)
{
if (log.IsWarnEnabled)
log.Warn(msg);
}
/// <summary>
/// 警告
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Warn(object msg, Exception ex)
{
if (log.IsErrorEnabled)
log.Warn(msg, ex);
}
/// <summary>
/// 消息
/// </summary>
/// <param name="msg"></param>
public static void Info(object msg)
{
if (log.IsInfoEnabled)
log.Info(msg);
}
/// <summary>
/// 消息
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Info(object msg, Exception ex)
{
if (log.IsInfoEnabled)
log.Info(msg, ex);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="msg"></param>
public static void Debug(object msg)
{
if (log.IsDebugEnabled)
log.Debug(msg);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Debug(object msg, Exception ex)
{
if (log.IsDebugEnabled)
log.Debug(msg, ex);
}
}
}
评论 想第一时间抢沙发么?