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要在配置文件中,有对应的节点值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值