首页 > 编程语言 >多个程序使用同一个 log4net 配置

多个程序使用同一个 log4net 配置

时间:2023-10-18 17:56:49浏览次数:29  
标签:log4net 同一个 Config 程序 GetLogger static LogManager config

多个程序使用同一个 log4net 配置,

AssemblyInfo.cs文件加上:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
初始化log4net:

log4net.GlobalContext.Properties["program"] = "#your program name#";
log4net.Config.XmlConfigurator.Configure();
调用

protected static readonly ILog SystemLogger = LogManager.GetLogger("SystemLog");
protected static readonly ILog TransferLogger = LogManager.GetLogger("TransferLog");

配置文件 log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!--log4net config-->
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value=".\Logs\" /> <!--日志路径-->
<rollingStyle value="Date" /><!--日志滚动模式-->
<datePattern value="_yyyy-MM-dd&quot;.log&quot;" /> <!--日志文件名格式-->
<staticLogFileName value="false" /> <!--日志文件名是否固定不变的-->
<appendToFile value="true" /> <!--是否向文件中追加日志-->
<maximumFileSize value="64MB" /> <!--日志文件最大大小-->
<maxSizeRollBackups value="10" /> <!--日志保留天数-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss,fff}][%-5level][%thread][%logger] - %message%newline" /><!--输出格式-->
</layout>

</appender>
<appender name="SystemRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value=".\Logs\%property{program}\system"/><!--日志路径-->
<rollingStyle value="Date" /><!--日志滚动模式-->
<datePattern value="_yyyy-MM-dd&quot;.log&quot;" /><!--日志文件名格式-->
<staticLogFileName value="false" /> <!--日志文件名是否固定不变的-->
<appendToFile value="true" /><!--是否向文件中追加日志-->
<maximumFileSize value="64MB" /><!--日志文件最大大小-->
<maxSizeRollBackups value="10" /><!--日志保留天数-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss,fff}][%-5level][%M]- %message%newline" /><!--输出格式-->
</layout>

<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="SystemLog" /><!--过滤器-->
</filter>
<filter type="log4net.Filter.DenyAllFilter" />


</appender>

<appender name="TransferRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value=".\Logs\%property{program}\transfer"/><!--日志路径-->
<rollingStyle value="Date" /><!--日志滚动模式-->
<datePattern value="_yyyy-MM-dd&quot;.log&quot;" /><!--日志文件名格式-->
<staticLogFileName value="false" /><!--日志文件名是否固定不变的-->
<appendToFile value="true" /><!--是否向文件中追加日志-->
<maximumFileSize value="64MB" /><!--日志文件最大大小-->
<maxSizeRollBackups value="10" /><!--日志保留天数-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{HH:mm:ss,fff}][%-5level][%M]- %message%newline" /><!--输出格式-->
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="TransferLog" /><!--过滤器-->
</filter>
<filter type="log4net.Filter.DenyAllFilter" />

</appender>

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] [%level] [%thread] - %message%newline" />
</layout>
</appender>

<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="DEBUG" />
<backColor value="Green" />
</mapping>
<mapping>
<level value="INFO" />
<backColor value="Yellow" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red,HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%-5level][%thread][%logger]- %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Debug" />
<param name="LevelMax" value="Fatal" />
</filter>
</appender>

<root>
<level value="ALL" />
<appender-ref ref="ColoredConsoleAppender" />
<!-- <appender-ref ref="RollingFileAppender" /> -->
<appender-ref ref="SystemRollingFileAppender" />
<appender-ref ref="TransferRollingFileAppender" />
</root>
</log4net>
</configuration>

————————————————
版权声明:本文为CSDN博主「踩可夫司机」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/egoily/article/details/90438736

标签:log4net,同一个,Config,程序,GetLogger,static,LogManager,config
From: https://www.cnblogs.com/chinasoft/p/17772988.html

相关文章

  • 如何使用Spring Boot监听器来优化应用程序性能?
    ......
  • 【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序
    前言当谈到王者荣耀游戏时,无法忽视的是其丰富多样的英雄皮肤。这些皮肤不仅为玩家提供了个性化的游戏体验,还展示了设计师们的创造力和努力。然而,要手动下载每个英雄的皮肤图片是一项枯燥且费时的任务。幸运的是,我们可以利用编程的力量来自动化这一过程。本文将介绍如何使用Pytho......
  • 在树莓派上使用VSCode开发C#程序
    在树莓派上使用VSCode开发C#程序使用VSCode在树莓派上写C#程序安装VSCode前往VSCode的官网下载VSCode,并安装https://code.visualstudio.com/下载.debArm64然后打开终端cdDownLoad切换到下载文件夹sudodpkg-iVScode........安装包或者参照博客树莓派安装一......
  • 如何注册微信小程序
    前言因为最近沉迷和朋友们一起下班去打麻将,他们推荐了一个计分的小程序,就不需要每局都转账或者用扑克牌记录了,但是这个小程序不仅打开有广告,各个页面都植入了广告,用起来十分不适。于是我就心里暗自下定决心,一定要撸一个没有广告的小程序。一周后,这个小程序发布了。欢迎大家参观......
  • 如何注册微信小程序
    前言因为最近沉迷和朋友们一起下班去打麻将,他们推荐了一个计分的小程序,就不需要每局都转账或者用扑克牌记录了,但是这个小程序不仅打开有广告,各个页面都植入了广告,用起来十分不适。于是我就心里暗自下定决心,一定要撸一个没有广告的小程序。一周后,这个小程序发布了。欢迎大家参观......
  • 【python】Python tkinter库实现重量单位转换器的GUI程序
    前言这段代码是一个简单的重量单位转换器的GUI程序,使用了Python的tkinter库来创建图形界面。该程序可以将输入的重量从千克转换为克、磅和盎司,并通过三个文本框分别显示转换后的结果。学到什么?使用tkinter库创建一个GUI窗口。tkinter是Python标准库中的一个模块,用于......
  • JavaScript高级程序设计(第3版)pdf电子版Nicholas C. Zakas
    JavaScript高级程序设计(第3版)pdf电子版作者:[美]NicholasC.Zakas原作名:ProfessionalJavaScriptforWeb出版年:2012-3-29ISBN:9787115275790链接提取码:jz6rJavaScript最基础的书籍。......
  • app应用程序该如何封装,能提升产品价值和用户体验感
    哈喽各位同学们好,我是咕噜铁蛋,咱们又见面了。之前我和大家聊了好多苹果文件签名的小知识,今天咱们换个口味讲讲别的内容---封装。随着移动应用市场的蓬勃发展,用户对应用的期望也变得更高。一个成功的应用不仅仅要具备功能完善和界面美观的特点,还需要在用户体验和产品价值方面提供差......
  • 微信小程序分包体积优化建议
    代码包体积优化启动性能优化最直接的手段是降低代码包大小,代码包大小直接影响了下载耗时,影响用户启动小程序时的体验。开发者可以采取以下手段优化代码包体积:1.合理使用分包加载推荐所有小程序使用使用分包加载是优化小程序启动耗时效果最明显的手段。建议开发者按照功......
  • System.TypeLoadException:“程序集“XXXX.K3.SCM.App.Core, Version=1.0.0.0, Cultur
    一、问题描述:网站页面调用方法时报错:报错内容如下:System.TypeLoadException:“程序集“XXXX.K3.SCM.App.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中的类型“XXXX.K3.SCM.App.Core.StockService”的方法“WriteBackAfterByInWhenAudit”没有实现。”......