日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

C# log4net 不輸出日志

 昵稱10504424 2013-04-18

一個新項目,直接用了一些之前的代碼,突然跟蹤不到日志了。檢查發(fā)現(xiàn)了原因,特在此記錄。

log4net的配置文件log4net_config.xml

View Code
復(fù)制代碼
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <appender name="TastInfo" type="log4net.Appender.RollingFileAppender">
        <file value="Log\\Info\\" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <maxSizeRollBackups value="-1" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="false" />
        <DatePattern value="yyyy-MM-dd".txt""/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date  %-5level  - %message%newline" />
        </layout>
    </appender>
    <appender name="TastError" type="log4net.Appender.RollingFileAppender">
        <file value="log\\Error\\" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <maxSizeRollBackups value="-1" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="false" />
        <DatePattern value="yyyy-MM-dd".txt""/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date  %-5level - %message%newline" />
        </layout>
    </appender>
    <appender name="TastDebug" type="log4net.Appender.RollingFileAppender">
        <file value="log\\Debug\\" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <maxSizeRollBackups value="-1" />
        <maximumFileSize value="1MB" />
        <staticLogFileName value="false" />
        <DatePattern value="yyyy-MM-dd".txt""/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date  %-5level - %message%newline" />
        </layout>
    </appender>
    <logger name="Info">
        <level value="ALL"/>
        <appender-ref ref="Info" />
        <appender-ref ref="TastInfo" />
    </logger>
    <logger name="Error">
        <level value="ALL"/>
        <appender-ref ref="Error" />
        <appender-ref ref="TastError" />
    </logger>
    <logger name="Debug">
        <level value="ALL"/>
        <appender-ref ref="Debug" />
        <appender-ref ref="TastDebug" />
    </logger>
</log4net>
復(fù)制代碼

log4net的應(yīng)用錯誤代碼:

View Code
復(fù)制代碼
 public class Log
    {
        private static string DefaultName = "log";

        static Log()
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + @"\log4net_config.xml";
            log4net.Config.XmlConfigurator.Configure(new FileInfo(path));
        }

        public static log4net.ILog GetLog(string logName)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(logName);
            return log;
        }

        public static void debug(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsDebugEnabled)
                log.Debug(message);

            log = null;
        }

        public static void debug(string message, Exception ex)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsDebugEnabled)
                log.Debug(message, ex);

            log = null;
        }

        public static void error(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsErrorEnabled)
                log.Error(message);

            log = null;
        }

        public static void error(string message, Exception ex)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsErrorEnabled)
                log.Error(message, ex);

            log = null;
        }

        public static void fatal(string message)
        {

            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsFatalEnabled)
                log.Fatal(message);

            log = null;
        }

        public static void info(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsInfoEnabled)
                log.Info(message);

            log = null;
        }

        public static void warn(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsWarnEnabled)
                log.Warn(message);

            log = null;
        } 
    }
復(fù)制代碼

不輸出日志的原因是因為, 默認(rèn)private static string DefaultName = "log",在配置文件里面找不到對應(yīng)的節(jié)點值。

正確的應(yīng)用代碼:

View Code
復(fù)制代碼
public class Log
    {
        private const string SError = "Error";
        private const string SDebug = "Debug";
        private const string DefaultName = "Info";

        static Log()
        {
            var path = AppDomain.CurrentDomain.BaseDirectory + @"\log4net_config.xml";
            log4net.Config.XmlConfigurator.Configure(new FileInfo(path));
        }

        public static log4net.ILog GetLog(string logName)
        {
            var log = log4net.LogManager.GetLogger(logName);
            return log;
        }

        public static void Debug(string message)
        {
            var log = log4net.LogManager.GetLogger(SDebug);
            if (log.IsDebugEnabled)
                log.Debug(message);
        }

        public static void Debug(string message, Exception ex)
        {
            var log = log4net.LogManager.GetLogger(SDebug);
            if (log.IsDebugEnabled)
                log.Debug(message, ex);
        }

        public static void Error(string message)
        {
            var log = log4net.LogManager.GetLogger(SError);
            if (log.IsErrorEnabled)
                log.Error(message);
        }

        public static void Error(string message, Exception ex)
        {
            var log = log4net.LogManager.GetLogger(SError);
            if (log.IsErrorEnabled)
                log.Error(message, ex);
        }

        public static void Fatal(string message)
        {
            var log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsFatalEnabled)
                log.Fatal(message);
        }

        public static void Info(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsInfoEnabled)
                log.Info(message);
        }

        public static void Warn(string message)
        {
            var log = log4net.LogManager.GetLogger(DefaultName);
            if (log.IsWarnEnabled)
                log.Warn(message);
        } 
    }

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多