一個新項目,直接用了一些之前的代碼,突然跟蹤不到日志了。檢查發(fā)現(xiàn)了原因,特在此記錄。 log4net的配置文件log4net_config.xml ![]() ![]() <?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> log4net的應(yīng)用錯誤代碼: ![]() ![]() 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; } } 不輸出日志的原因是因為, 默認(rèn)private static string DefaultName = "log",在配置文件里面找不到對應(yīng)的節(jié)點值。 正確的應(yīng)用代碼: ![]() ![]() 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); } } |
|
來自: 昵稱10504424 > 《C#》