将Log4net的配置配置到的独立文件中

本文介绍如何在独立配置文件中设置Log4Net,并详细展示了配置文件内容及使用Log4Net记录不同级别日志的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在独立的配置文件中只需要修改几个地方就能完成</span>
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类代码:


[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);
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值