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".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的应用错误代码:
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);
}
}
C# log4net 不输出日志的更多相关文章
- 记一次排查log4net 不输出日志的解决过程
最近发现log4net 不输出日志了,重点排查几个地方,发现都没有问题. 1.[assembly: log4net.Config.XmlConfigurator(ConfigFile = " ...
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
(六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...
- log4net 按时间输出日志
参考:(转)非常完善的Log4net详细说明 log4net 按天与按小时记日志的配置 Log4net 中输出日志到文件,文件名根据日期生成 log4net按日志级别(debug,info,warn, ...
- log4net不同logger输出日志
4步曲 1.引用log4net.dll(nuget) 2.任意位置的命名空间头部加入下面的代码,web.config可修改为自己定义的.xml [assembly: log4net.Config.Xm ...
- log4net 本地环境没问题 生产环境无法输出日志
log4net输出日志大概分两块 1.程序代码编写问题 2.配置文件问题 当程序本地可以正常输出日志.配置文件也都正常可用的情况下,发布到生产环境后,有的程序可以输出日志,有的程序不可以输出,程序无问 ...
- log4net 配置完成后发现不能输出日志的解决方法
配置好log4net后发现日志不能输出,打开调试看一下几个属性都是false,(比如isdebugenable =false)这其实是项目的启动时候没有加入一行声明代码导致的,可以在程序的Assemb ...
- Log4net 根据日志类型输出日志
第一步:引入Log4net.dll 文件的引用 第二步:添加LogHelper类,代码如下 using System; using System.Collections.Generic; using ...
- .net core 中使用Log4net输出日志到Mysql数据库中
.net core 中使用Log4net输出日志到数据库中去 1.使用Nuget安装log4net 和 mysql.data 2.设置log4net 的配置文件 log4net.config 可以设置 ...
- Log4net入门(日志文件篇)
在上一篇Log4net入门(控制台篇)中,我们将日志信息输出到控制台中,在这一篇中,我们将描述如何将日志信息写到文件中.要将日志信息写入文件非常简单,只需要在Log4net.config配置文件中添加 ...
随机推荐
- 关于https的Error:Error Domain=NSURLErrorDomain Code=-1012
昨天闲着没事就随便搞点demo,随便找了一个https的接口,运行之后,一直发现Error Domain=NSURLErrorDomain Code=-1012.好奇怪,请求https的配置我基本都配 ...
- 【转】IOS开发资源汇总
转自:http://blog.csdn.net/favormm/article/details/6664970 如何用Facebook graphic api上传视频: http://develope ...
- Silverlight项目笔记8:层次布局、客户端读取shp、ExecuteCountAsync、柱状图、url传参
1.层次布局 由于地图窗口和菜单栏都在一个父容器内,在浏览器缩小到一定程度点击地图弹出infoWindow时,会出现菜单栏遮挡infoWindow中间部分的现象,于是通过设置Canvas.ZIndex ...
- VIP - virtual IP address
virtual IP address (虚拟 IP 地址)1.是集群的ip地址,一个vip对应多个机器2.与群集关联的唯一 IP 地址 see wiki: A virtual IP address ( ...
- android 进程/线程管理(三)----Thread,Looper / HandlerThread / IntentService
Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package ...
- Effective Java 69 Prefer concurrency utilities to wait and notify
Principle Use the higher-level concurrency utilities instead of wait and notify for easiness. Use Co ...
- ASP.NET 使用Ajax(转)
之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的Sc ...
- SQL Server 2008 R2——VC++ ADO 操作 多线程操作 代码结构
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- 烂泥:centos安装LVM方式
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习有关LVM逻辑卷的知识,由于以前没有接触过,看了很多有关这方面的视频.但是一直不深入.今天就先不管了,先把centos系统安装在LVM上 ...
- 「ubuntu」通过无线网络安装Ubuntu Server,启动系统后如何连接无线网络
接触Ubuntu系统不久,发现无线网络环境下安装Ubuntu Server一个不太人性化的设计:在安装过程中选择无线网卡,即使用无线网络安装(此时需要选择Wi-Fi网络并输入密码),但系统安装完成重启 ...