log4

时间:2022-12-10 15:46:10
<?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. &period;net错误日志记录&lpar;log4&rpar;

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

  2. Log4j使用教程 log4:WARN No appenders could be found for logger &lpar;org&period;springframework&period;web&period;context&period;ContextLoader&rpar;&period;

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

  3. Log4&period;net使用配置

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

  4. 关于log4&period;net 错误,求解

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

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

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

  6. Log4&period;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&period;Net 在Winform、MVC、ashx程序里的使用,ashx程序里使用异步

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

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

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

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

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

随机推荐

  1. 在SQL Server 2014里可更新的列存储索引 (Updateable Column Store Indexes)

    传统的关系数据库服务引擎往往并不是对超大量数据进行分析计算的最佳平台,为此,SQL Server中开发了分析服务引擎去对大笔数据进行分析计算.当然,对于数据的存放平台SQL Server数据库引擎而言 ...

  2. MySQL性能状态查看方式

    1. QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show global status like 'Question% ...

  3. Android调用Asp&period;net Web Service示例

    WebService代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  4. hibernate懒加载导致jackjson解析json时*

    @JsonIgnore @JsonFilter @JsonBackReference @JsonManagedReference @JsonIgnoreProperties jackson中的@Jso ...

  5. python爬虫之scrapy文件下载

    我们在写普通脚本的时候,从一个网站拿到一个文件的下载url,然后下载,直接将数据写入文件或者保存下来,但是这个需要我们自己一点一点的写出来,而且反复利用率并不高,为了不重复造*,scrapy提供很流 ...

  6. Linux 文件删除 提示 Operation not permitted

     Linux  删除 隐藏文件提示 Operation not permitted ? linux  删除 隐藏文件 提示  Operation not permitted  不允许操作? 使用 ls ...

  7. win10 64位,家庭版,C&plus;&plus;,ini配置说明

      #include<windows.h> #include<iostream> #include <atlstr.h> using namespace std; ...

  8. CAS单点登录流程

    CAS的官方站点: https://apereo.github.io/cas/5.2.x/index.html 概念解读: The TGT (Ticket Granting Ticket), stor ...

  9. each与list的用法(PHP学习)

    1.each的用法 先看API array each ( array &$array ) api里是这么描述的:each — 返回数组中当前的键/值对并将数组指针向前移动一步 我们先来看看返回 ...

  10. CentOS 6&period;4下Squid代理服务器的安装与配置(转)

    add by zhj: 其实我们主要还是关注它在服务器端使用时,充当反向代理和静态数据缓存.至于普通代理和透明代理,其实相当于客户端做的事,和服务端没有什么关系.另外,Squid的缓存主要是缓存在硬盘 ...