首页 > 其他分享 >log4net 的简单配置

log4net 的简单配置

时间:2022-11-21 15:11:13浏览次数:50  
标签:log4net info string 配置 static 简单 logInfo public

安装 Nuget 包

log4net 的简单配置_日志文件

▲ 这个没什么说的。

log4net.config

右键项目新建程序配置:

log4net 的简单配置_文件大小_02

log4net.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--配置节点-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="Log\\Info\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'_INFO''.log'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [thread:%t] %-3p %F line:%L func:%c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="Log\\Debug\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'_DEBUG''.log'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [thread:%t] %-5p %7c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="Log\\Error\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'_ERROR''.log'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [thread:%t] %p %c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="FATAL"/>
</filter>
</appender>
<root>
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
<!--系统上线初期或发生异常可将此Level设定为DEBUG或ALL-->
<level value="ALL" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="ErrorAppender" />
</root>
</log4net>
</configuration>

自动复制配置文件

log4net 的简单配置_xml_03

LogHelper 类包装

public static class LogHelper
{
static LogHelper()
{
//log4net.Config.XmlConfigurator.Configure();
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("./log4net.config")); // 设置更新是自动复制
}

private static ILog logInfo = LogManager.GetLogger("Default");
/// <summary>
/// 自定义方法名,同一个方法中可只传一次
/// </summary>
/// <param name="className"></param>
/// <returns></returns>
public static ILog GetLogger(string className)
{
logInfo = LogManager.GetLogger(className);
return logInfo;
}
/// <summary>
/// 记录Info日志
/// </summary>
/// <param name="info"></param>
public static void Info(string info)
{
if (logInfo.IsInfoEnabled && !string.IsNullOrEmpty(info))
{
logInfo.Info(info);
}
}
/// <summary>
/// 记录error日志
/// </summary>
/// <param name="info"></param>
public static void Error(string info)
{
if (!string.IsNullOrEmpty(info))
{
logInfo.Error(info);
}
}
/// <summary>
/// 记录debug日志
/// </summary>
/// <param name="info"></param>
public static void Debug(string info)
{
if (logInfo.IsDebugEnabled && !string.IsNullOrEmpty(info))
{
logInfo.Debug(info);
}
}
/// <summary>
/// 记录Fatal日志 致命错误
/// </summary>
/// <param name="info"></param>
public static void Fatal(string info)
{
logInfo.Fatal(info);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="info"></param>
public static void Warn(string info)
{
logInfo.Warn(info);
}
}

AssemblyInfo.cs 配置

新增:

log4net 的简单配置_C#_04

新增:

//设置独立配置文件,log4net.config
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

使用

其他程序集使用的时候也需要引用 ​​log4net.dll​​​。如果需要增加新的 ​​log​​​ 对象:​​GetLogger(string className)​​ 一下。




更新下配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--配置节点-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>

<!--自定义 logger-->

<appender name="CSVAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="D:\\Data\\RunData\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'''.csv'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy'/'MM'/'dd HH':'mm':'ss},%m%n" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>

<!--默认 Root logger-->

<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="Log\\Info\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'_INFO''.log'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [thread:%t] %-3p %F line:%L func:%c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="Log\\Debug\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'_DEBUG''.log'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [thread:%t] %-5p %7c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="Log\\Error\\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--log文件大小-->
<param name="maximumFileSize" value="100MB"/>
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd'_ERROR''.log'" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Composite" />
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [thread:%t] %p %c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="ERROR"/>
</filter>
<!--<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="ERROR" />
</filter>-->
</appender>
<root>
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
<!--系统上线初期或发生异常可将此Level设定为DEBUG或ALL-->
<level value="ALL" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="ErrorAppender" />
</root>

<!--自定义 Logger-->

<logger name="Custom_CSV" additivity="false">
<level value="ALL"/>
<appender-ref ref="CSVAppender" />
</logger>
</log4net>
</configuration>




标签:log4net,info,string,配置,static,简单,logInfo,public
From: https://blog.51cto.com/u_15698411/5873911

相关文章

  • log4net 的简单配置
    安装Nuget包▲这个没什么说的。log4net.config右键项目新建程序配置:log4net.config<?xmlversion="1.0"encoding="utf-8"?><configuration><configSections><!--......
  • 【Azure 服务总线】Azure.Messaging.ServiceBus 多次发送消息报超时错误,是否可以配置
    问题描述使用AzureServiceBus,提供应用程序之间松耦合的消息交换,但是有时候发送消息多次出现超时错误。Aconnectionattemptfailedbecausetheconnectedpartydidno......
  • 简单端口映射、转发、重定向工具-Rinetd
    一、概述Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。将TCP连接从一个IP地址和端口重定向到另一个。它处理文件中/etc/rinetd.c......
  • 阿里云yum仓库配置
    centos下yum仓库配置地址:/etc/yum.repos.d/,这个目录下的*.repo文件都会被识别为yum仓库。阿里云yum仓库配置很简单:阿里云官方镜像站https://developer.aliyun.com/mirro......
  • PHPStorm配置PHP调试环境,xdebug调试原理
    之前的调试环境有一点混乱,所以决定重新配置一遍,写这篇文章记录出现的问题,希望能够帮助到你们搭建环境windowsphpstudyapache/nginxphp7.3phpstormxdebug+chromephpstudy......
  • 阿里云服务器配置传统型负载均衡CLB(原SLB)
    本项目是微信小游戏后端,为单体项目,没有主页,不需要设置域名解析。1、首先准备阿里云服务器若干台,创建CLB实例;2、配置CLB实例,添加监听规则和后端服务器;3、注意配置负载均......
  • 模拟简单的计算机程序
    packagebase.method;importjava.util.Scanner;publicclassDemo6{publicstaticStringequal;publicstaticdoublerest;publicstaticdouble......
  • mysql中performance_schema(一)配置篇
    背景   performance_schema最早在MYSQL5.5中出现,而现在5.6,5.7中performance_schema又添加了更多的监控项,统计信息也更丰富,真乃DBA童鞋进行性能诊断分析的福音。 检查......
  • Kubernetes(K8S) 配置静态资源服务
    Kubernetes(K8S)配置静态资源服务---apiVersion:v1kind:ConfigMapmetadata:name:img-confignamespace:vipsoftdata:img.conf:|server{ch......
  • element-ui全局配置和按需配置
    全局配置:1.导入:main.js全局引入element-ui:importElementUIfrom"element-ui"2.注册:使用Vue注册element-ui:Vue.use(ElementUI)3.使用:(任何组件中使用element-ui组件......