zoukankan      html  css  js  c++  java
  • C# log4net 不输出日志

    一个新项目,直接用了一些之前的代码,突然跟踪不到日志了。检查发现了原因,特在此记录。 

    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&quot;.txt&quot;"/>

    <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&quot;.txt&quot;"/>

    <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&quot;.txt&quot;"/>

    <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的应用错误代码:

    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;

    }

    }

    不输出日志的原因是因为, 默认private static string DefaultName = "log",在配置文件里面找不到对应的节点值。

    正确的应用代码:

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

    }

    }

    总结:log4net.LogManager.GetLogger(Name),这里面的Name要在配置文件中,有对应的节点值。
  • 相关阅读:
    JavaScript--Function类型(11)
    CSS--清除浮动
    JavaScript--正则表达式(笔记)
    JavaScript--模块化编程(笔记)
    原生javascript-图片滚动按需加载
    原生javascript-图片按钮切换
    原生javascript-图片弹窗交互效果
    对CSS了解-overflow:hidden
    对CSS了解-选择器权重
    TaskTimer
  • 原文地址:https://www.cnblogs.com/soundcode/p/4861438.html
Copyright © 2011-2022 走看看