<?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的更多相关文章

  1. .net错误日志记录(log4)

    Log4 web.config <!--这段放前面--> <configSections> <section name="log4net" type= ...

  2. Log4j使用教程 log4:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).

    1.Logger类 通过Logger类的静态方法Logger.getRootLogger得到RootLogger.所有其他的loggers是通过静态方法Logger.getLogger来实例化并获取的 ...

  3. Log4.net使用配置

    开发中经常使用到日志记录功能,Log4.net可以将日志记录到文件中,也可以记录到数据库中,使用非常方便,之前也一直在用,最近也参照了一下网上的资料,想简单总结一下 本文重在通过通用日志类来使用Log ...

  4. 关于log4.net 错误,求解

    1.上结果 能生成文件 ,但是文件中无内容 2.配置文件 <configSections> <section name="log4net" type=" ...

  5. ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)

    本文章将会继承上一篇文章,主要讲通过工具来进行日志的收集与发送,<ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd> Nxlog是一个日志收集工具, ...

  6. Log4.Net 在Winfrom、MVC、ashx程序里的使用,ashx程序里使用异步

    最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...

  7. netcore log4相关

    配置: 1:NuGet程序包 - 搜索log4net - 安装 2:配置代码 Startup文件 #region log4        public static ILoggerRepository ...

  8. Log4.Net 在Winform、MVC、ashx程序里的使用,ashx程序里使用异步

    最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...

  9. log4.net 配置 - StringMatchFilter过滤器的使用

    当我们需要对log4输出的内容进行过滤时就需要使用到StringMatchFilter过滤器 它有两种工作模式: 1.字符串查找模式:只要消息内容包含指定字符串则符合过滤器规则. 2.正则表达式模式: ...

  10. log4写完日志不会自动释放

    今天想做个日志记录功能.网上查了下.决定使用log4net 来做. 但是最发现在写日志的时候.会一直占用当前的日志文件.当你想查看的时候会提示另一个进程占用了该文件. 只有到他创建下一个日志文件.然后 ...

随机推荐

  1. TMS320C54x系列DSP的CPU与外设——第1章 绪论

    第1章 绪论 TMS320C54x DSP是TMS320系列DSP产品中的定点数字信号处理器.C54x DSP满足了实时嵌入式应用的一些要求,例如通信方面的应用. C54x的中央处理单元(CPU)具有 ...

  2. 三. ServerSocket用法

    一.构造ServerSocket 构造方法 (1)new ServerSocket( ) (2)new ServerSocket(int port,int backlog) (3)new Server ...

  3. 解决pdm打开只显示表名不显示字段的步骤

    解决pdm打开只显示表名不显示字段的方法 选中PDM 依次点击 工具-->显示参数选择-->content 下面的table ,右边勾选上columns 点击OK 选择 all symbo ...

  4. SparkSql官方文档中文翻译(java版本)

    1 概述(Overview) 2 DataFrames 2.1 入口:SQLContext(Starting Point: SQLContext) 2.2 创建DataFrames(Creating ...

  5. PLSQL_Oracle PLSQL处理日期方式大全(概念)

    TO_DATE格式  Day:  dd number 12  dy abbreviated fri  day spelled out friday  ddspth spelled out, ordin ...

  6. Laravel 5 IDE Helper 安装

    一.项目地址 https://github.com/barryvdh/laravel-ide-helper 二.安装方法 1.方法一:直接使用已经生成的文件 下载 https://gist.githu ...

  7. android之location 根据接口获取经纬度信息

    http://maps.googleapis.com/maps/api/geocode/json?address=%E7%A6%8F%E5%BB%BA&sensor=falsehttp://m ...

  8. solr学习之添加文档

    一.开篇语 其实Solr就是一个你可以通过他来查询文档的东西,他整个都是基于Document的,那么这些Document从何而来列?  当然是我们给他,而这些来源就包括了:数据库文件,XML,Json ...

  9. dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间

    dedecms列表页如何让文章列表里面的文章每隔五篇就隔开一段空间,运用js控制列表样式的方法. 代码如下: <script type="text/javascript"&g ...

  10. 认识与学习BASH(中)

    1.在设置变量中:单引号与双引号的最大不同:双引号能保有变量的内容,单引号仅能是一般字符 2.反单引号(`)作用:在一串指令中,在‘之内的指令将会被先执行,其结果将作为外部的输入信息. locate指 ...