log4
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--日志记录组建配置-->
<log4net> <logger name="ExceptionLogger">
<level value="ERROR" />
<appender-ref ref="ExceptionFileAppender" />
<!--<appender-ref ref="ConsoleAppender" />-->
</logger> <logger name="InfoLogger">
<level value="INFO" />
<appender-ref ref="InfoFileAppender" />
<!--<appender-ref ref="ConsoleAppender" />-->
</logger> <logger name="DebugLogger">
<level value="All" />
<appender-ref ref="DebugFileAppender" />
<!--<appender-ref ref="ConsoleAppender" />-->
</logger> <!-- Exception -->
<appender name="ExceptionFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Exception\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'..log'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<header value="------------------------------------------------------------ " />
<ConversionPattern value=" %date [%thread] - %message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender> <!-- Info -->
<appender name="InfoFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Info\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'..log'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<header value="------------------------------------------------------------ " />
<ConversionPattern value="%date [%thread] - %message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender> <!-- Debug -->
<appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Debug\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'..log'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<header value="------------------------------------------------------------ " />
<ConversionPattern value="%date [%thread] - %message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="DEBUG"/>
</filter>
</appender> <!-- Console部分log输出格式的设定 -->
<!--<appender name="ConsoleAppender" type="log4net.Appender.RollingFileAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] - %message%newline%newline" />
</layout>
</appender>--> <!-- Setup the root category, add the appenders and set the default level -->
<root>
<!--<level value="ALL" />-->
<appender-ref ref="ExceptionFileAppender" />
<appender-ref ref="InfoFileAppender" />
<appender-ref ref="DebugFileAppender" />
</root>
</log4net>
</configuration>
logger
public static class Logger
{
static ILog log; static Logger()
{
string strPath = System.AppDomain.CurrentDomain.BaseDirectory;
strPath = System.IO.Path.Combine(strPath, "log4net.config");
System.IO.FileInfo log4File = new System.IO.FileInfo(strPath);
log4net.Config.XmlConfigurator.Configure(log4File);
log = LogManager.GetLogger("AdoNet");
} /// <summary>
/// 记录信息
/// </summary>
/// <param name="argContent"></param>
public static void LogInfo(string argContent)
{
log.Info(argContent);
} /// <summary>
/// 记录信息
/// </summary>
/// <param name="argObj"></param>
public static void LogInfo(object argObj)
{
log.Info(new { argObj });
} /// <summary>
/// 记录错误
/// </summary>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void LogError(string message,System.Exception exception)
{
log.Error(message, exception);
} /// <summary>
/// 记录错误
/// </summary>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void LogError( object message,System.Exception exception)
{
log.Error(new {message = message, exception});
} /// <summary>
/// 记录错误
/// </summary>
/// <param name="error"></param>
public static void LogError(string error)
{
log.Error(new {error = error});
}
}
调用
Logger.LogError("Error?");
Logger.LogInfo("Info");
log4的更多相关文章
- .net错误日志记录(log4)
Log4 web.config <!--这段放前面--> <configSections> <section name="log4net" type= ...
- Log4j使用教程 log4:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
1.Logger类 通过Logger类的静态方法Logger.getRootLogger得到RootLogger.所有其他的loggers是通过静态方法Logger.getLogger来实例化并获取的 ...
- Log4.net使用配置
开发中经常使用到日志记录功能,Log4.net可以将日志记录到文件中,也可以记录到数据库中,使用非常方便,之前也一直在用,最近也参照了一下网上的资料,想简单总结一下 本文重在通过通用日志类来使用Log ...
- 关于log4.net 错误,求解
1.上结果 能生成文件 ,但是文件中无内容 2.配置文件 <configSections> <section name="log4net" type=" ...
- ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)
本文章将会继承上一篇文章,主要讲通过工具来进行日志的收集与发送,<ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd> Nxlog是一个日志收集工具, ...
- Log4.Net 在Winfrom、MVC、ashx程序里的使用,ashx程序里使用异步
最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...
- netcore log4相关
配置: 1:NuGet程序包 - 搜索log4net - 安装 2:配置代码 Startup文件 #region log4 public static ILoggerRepository ...
- Log4.Net 在Winform、MVC、ashx程序里的使用,ashx程序里使用异步
最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...
- log4.net 配置 - StringMatchFilter过滤器的使用
当我们需要对log4输出的内容进行过滤时就需要使用到StringMatchFilter过滤器 它有两种工作模式: 1.字符串查找模式:只要消息内容包含指定字符串则符合过滤器规则. 2.正则表达式模式: ...
- log4写完日志不会自动释放
今天想做个日志记录功能.网上查了下.决定使用log4net 来做. 但是最发现在写日志的时候.会一直占用当前的日志文件.当你想查看的时候会提示另一个进程占用了该文件. 只有到他创建下一个日志文件.然后 ...
随机推荐
- CentOS7安装Oracle 11g R2 详细过程——零基础
本人linux小白,因项目原因必须要在linux下使用oracle便开始了探索.安装过程中遇到了种种问题与原因,今天整理一下方便后面的可以少走弯路. *注明: 安装过程注意当前错作的用户,执行./ru ...
- java定时器和多线程实践记录
这几天因为需要测试mongodb读写分离的问题,因此写了个定时查询程序,并且用到了多线程,以达到定时启动多个线程查询数据库的效果,下边代码记录备忘: package timmer; import ja ...
- linq简介
语言集成查询(Language INtegrated Query,LINQ)是一项微软技术,新增一种自然查询的SQL语法到.NET Framework的编程语言中,可支持Visual Basic .N ...
- Freescle cortex-A9(完善中...)
关键词:cortex-A9 , udoo ,mars board ; (内容参考,飞思卡尔官方网站,如有问题请联系本人) i.MX 6系列处理器推出了业界首个具有真正扩展性的多核平台,包括基于ARM® ...
- PLSQL_Oracle面试整理(汇总)
2014-08-16 Created By BaoXinjian
- OpenCV实现KNN算法
原文 OpenCV实现KNN算法 K Nearest Neighbors 这个算法首先贮藏所有的训练样本,然后通过分析(包括选举,计算加权和等方式)一个新样本周围K个最近邻以给出该样本的相应值.这种方 ...
- A note to "On global motions of a compressible barotropic and selfgravitating gas with density-dependent viscosities"
Ducomet, Bernard; Nečasová, Šárka; Vasseur, Alexis. On global motions of a compressible barotropic a ...
- Eclipse内置Tomcat的配置
1.首先肯定是得下载J2EE版本的eclipse了,再去Apache Tomcat的官网去下一个Tomcat.都解压到自己想放的目录 2.Eclipse -> Preferences -> ...
- Yii2.0 数据库查询方法
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User:: ...
- Python基础10 反过头来看看
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 从最初的"Hello World",走到面向对象.该回过头来看 ...