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

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要在配置文件中,有对应的节点值。

C# log4net 不输出日志相关推荐

  1. log4net 无法输出日志,跟踪发现IsErrorEnabled等,都是Flase

    log4net 无法输出日志,跟踪发现IsErrorEnabled等,都是Flase. 因为这是个半路接手的项目,写法和我之前的习惯不一样,所以也没看出问题出在哪里. 代码如下: private st ...

  2. log4net不输出日志的原因及解决方案

    log4net不输出日志文件主要有以下几个原因: 1 没有在AssemblyInfo文件中添加下面的代码: [assembly: log4net.Config.XmlConfigurator(Conf ...

  3. Log4net 中输出日志到文件,文件名根据日期生成

    1           简介 1.1          Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管 ...

  4. log4,log4net,Log4配置,log4net使用实例,.net中使用LOG4输出日志,LOG4纪录日志

    log4,log4net,Log4配置,log4net使用实例,.net中使用LOG4输出日志,LOG4纪录日志 Log4配置 一.常用输出格式 %c   列出logger名字空间的全称,如加上{&l ...

  5. C#输出日志文件——log4net组件

    C#输出日志文件--log4net组件 前言 最近在写一个Winform项目,发现不知道怎么查看相关的输出信息来判断逻辑,经过一番搜索终于了解到这个一个非常好用的组件--log4net. log4ne ...

  6. asp.net Web项目中使用Log4Net进行错误日志记录

    使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能改变 ...

  7. 解决Flink输出日志中时间比当前时间晚8个小时的问题

    Flink安装在CentOS7上,默认时间是UTC时间,查看Flink日志,发现输出时间比当前时间晚8个小时. 通过如下命令,调整成北京时间 cp /usr/share/zoneinfo/Asia/S ...

  8. PyCharm中控制台输出日志分层级分颜色显示

    原文:https://blog.csdn.net/linzi1994/article/details/83009233 PyCharm中控制台输出日志分层级分颜色显示 版权声明:本文为博主原创文章,未 ...

  9. slf4j + logback 输出日志:mybatis sql语句

    1 引入jar包:maven resposity 中 选择logback classic module <dependency> <groupId>ch.qos.logback ...

最新文章

  1. Python3模块Crypto改为pycryptodome
  2. Oracle 11g Release 1 (11.1) PL/SQL_多维 Collection 类型和其异常
  3. Boltzmann Machine 入门(2)
  4. 【转载】MOS开关(verilog)
  5. PHP汉字转拼音的类
  6. inode索引节点的概念
  7. Java基础语法之方法的参数传递与综合案例
  8. openstack部署过程中问题记录
  9. 备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE
  10. oracle读写mysql_Oracle读写磁盘经过的缓存
  11. aspnetpager 详解
  12. 大数据时代中国“破障”
  13. iOS经典讲解之播放本地音频文件
  14. 解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。
  15. 谷歌浏览器网页打不开怎么办
  16. ruby on rais3 入门——环境搭建详细步骤(windows下)
  17. 功能安全b等级_安全B端会议吸引了越来越多的信息安全人群
  18. metasploit msfvenom与veil绕过杀毒软件
  19. Unity-后期处理效果之Bloom
  20. 使用Synergy控制实现一套键盘鼠标控制多台电脑(windows+linux)

热门文章

  1. OpenGL shader uniform的实例
  2. 计算机网络连接能否隐藏位置,如何能在局域网中隐藏电脑及IP地址
  3. 55_pytorch,自定义数据集
  4. 23-26 Python File方法、OS文件/目录方法、异常处理、内置函数
  5. c语言中函数(linux命令查看依赖类库),数组(内存存储是连续的内存空间),Linux下查看a,a[0],a之间的值,可变数组
  6. ubunto用户切换
  7. PrintWriter和ServletOutputStream的区别
  8. 打开高效文本编辑之门_Linux Awk之条件判断与循环
  9. BeautifulSoup 返回网页标签的名称、父标签名称、行号、完整路径
  10. 广东高中生多少人_“广东人参”五指毛桃根的功效与作用,有多少人真的清楚...