<?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. 可以返回执行结果的system函数加强版本

    在GNU Linux C编程中,要想进行系统命令的执行的话,只提供了system接口,但是此接口并不能得到命令执行后所输出的值,而只能够得到命令是否执行成功的结果.仅仅这样的功能还是不够的,有的时候是 ...

  2. @RequesParam注解源码解析

  3. spark transformation与action操作函数

    一.Transformation map(func) 返回一个新的分布式数据集,由每个原元素经过函数处理后的新元素组成 filter(func) 返回一个新的数据集,经过fun函数处理后返回值为tru ...

  4. 图片_ _优化Bitmap加载图片1

    ===========  1   视图显示大量图片时的内存问题 setBackgroundResource 回去res 资源文件里面找适配手机当前屏幕的文件,所以消耗高,etBackgroundDra ...

  5. bug_ _ 常见的bug1

    =====  3   java.lang.reflect.InvocationTargetException 异常解决方法 在做djunit测试的时候,发生下面异常: java.lang.reflec ...

  6. Spring中IoC的入门实例

    Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...

  7. compass项目监控文件报 /usr/bin/env 找不到文件

    1 找到ruby执行文件目录 $ wherris ruby ruby: /usr/lib/ruby /home/rudy/.rbenv/shims/ruby 2 设置软链接 sudo ln -s /h ...

  8. [ActionScript 3.0] AS3.0 给flash事件传递参数的方法

    有时我们想要给flash内置的事件(比如MouseEvent)传递参数,这时我们可以用到下面的方法. import flash.events.MouseEvent; mc.addEventListen ...

  9. 关于Servlet中的HttpServletRequest和HttpServletResponse

    1.HttpServletRequest 方    法 说    明 getAttributeNames() 返回当前请求的所有属性的名字集合 getAttribute(String name) 返回 ...

  10. Html5中的跨页面消息传输

    1.如果要接受从其他的窗口那里发过来的消息,就必须对窗口对象的message事件进行监控. window.addEventListener("message",function() ...