多个程序使用同一个 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".log"" /> <!--日志文件名格式-->
<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".log"" /><!--日志文件名格式-->
<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".log"" /><!--日志文件名格式-->
<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>
<level value="ALL" />
<appender-ref ref="ColoredConsoleAppender" />
<!-- <appender-ref ref="RollingFileAppender" /> -->
<appender-ref ref="SystemRollingFileAppender" />
<appender-ref ref="TransferRollingFileAppender" />
</root>
</log4net>
</configuration>
多个程序使用同一个 log4net 配置,AssemblyInfo.cs文件加上:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]初始化log4net:log4net.GlobalConte...
开发时,为了调试方便,经常使用System.out.pringln语句输出调试错误信息。日志程序就是由这些嵌入在程序中以输出调试信息的语句组成的。使用Log4j不急可以完成简单的程序日志功能,还可以对程序日志记录分级管理。使日志信息具有多种输出格式和多个输出级别。日志记录可以通过配置在运行时得到控制,他可以避免使用成千上万的System.out.pringln语句维护程序日志。
log4j简介:
log4j是有Apache的开源项目,通过使用log4j,可以控制每一条日志的输出格式、级别,也能够更加细致的控制日志的生成过程。通过log4j可以控制日志的信息输送的目的地是文件、控制台GUI组件、
log4多环境的搭建需要将pom.xml文件中project->profiles部分和logback.xml文件中configuration->property的resource属性结合使用:
1.project->profiles负责定义打包时.properties文件的选择,.properties中负责声明logback.xml的相关配置变量。
2.configurati...
在xml里面这样写
<file type="log4net.Util.PatternString" value="log\%property{fname}.log"/>
在c#里面这样写
log4net....
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- This section contains the log4net configuration settings -->
你要明白,任何问题都不是孤立存在的,一定有人曾经遇到过,并且已经有更好的解决办法了,只是我还不知道。我不应该在黑暗中独自前行,去重新发明轮子,也许我的顿悟,只是别人的基本功!我应该要站在巨人的肩膀上,学习更成熟的经验和方法,然后再来解决这个问题
04-28
log4net日志文件
配置log4net.config
配置Log4 Help类Web.config
配置Global.asax
配置AssemblyInfo.cs
配置
log4net.config
配置
<?xml version="1.0" encoding="utf-8"?>
Log4cplus
配置文件
之前文章《
log4cplus
使用》中提到
使用代码
配置的不灵活,
log4cplus 是
log4j 的 c++ 实现,那肯定也是能支持
配置文件的。这里就简单来说说
log4cplus
配置文件的
使用
配置文件
log.properties
# 日志级别,FATAL, ERROR, WARN, INFO, DEBUG, TRACE,由高到低
log4cplus.root
Logger=TRACE,console,file,errorFile
# 控制台Appender
1、概述:
一个好的项目,日志的记录是必不可少的。试想如果用户哪天用着系统突出弹出个“应用程序出错”的页面,那给用户的感觉可不太好了。您的面子上也过不去呀。可麻烦的还在后头,您可能根本就不知道错误发生在了什么地方,因为web.config文件将错误屏蔽掉了。所以日志文件是非常重要的。
2、正文:
今天这里给大家介绍是一个第三方的日志组建:log4net.园子里已经有...
Spring Boot 是一个非常流行的 Java 框架,它非常方便快捷的搭建 Web 应用程序,但是在多环境中的日志管理问题一直是让人头疼的问题,如何合理的配置日志文件,并在不同环境切换,是开发者们需要解决的问题。
首先,我们可以在 application.properties(或 application.yml)文件中配置多个日志文件,比如:
logging.file=logs/application.log
logging.file.prod=logs/application-prod.log
logging.file.dev=logs/application-dev.log
上面配置了三个日志文件,分别对应生产环境、开发环境和默认环境。我们可以使用如下命令来指定不同的环境:
java -jar demo.jar --spring.profiles.active=prod
通过这种方式来切换不同的环境,Spring Boot 会自动加载对应环境的日志文件。
其次,我们可以在 logback.xml(或 log4j2.xml)文件中,配置多个 appender,并根据不同的环境来指定不同的 appender。比如:
<appender name="Appender" class="ch.qos.logback.core.FileAppender">
<file>${LOG_HOME}/${LOG_FILE}</file>
<encoder>
<pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<springProfile name="prod">
<appender name="Appender" class="ch.qos.logback.core.FileAppender">
<file>${LOG_HOME}/${LOG_FILE}.prod</file>
<encoder>
<pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
</springProfile>
<springProfile name="dev">
<appender name="Appender" class="ch.qos.logback.core.FileAppender">
<file>${LOG_HOME}/${LOG_FILE}.dev</file>
<encoder>
<pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
</springProfile>
上面的配置中,我们根据不同的环境,分别配置了不同的 appender,然后在启动命令中指定环境即可。这种方式同样可以有效地解决多环境下的日志管理问题。
总之,在 Spring Boot 中配置多环境的日志文件,有多种不同的方式可以实现,开发者可以根据自己的需求和喜好来选择不同的方式。同时,需要注意的是,日志文件的配置需要根据实际情况来进行调整和优化,确保系统的稳定性和性能。
NET(C#):线程本地存储(Thread-Local Storage)之ThreadStatic, LocalDataStoreSlot和ThreadLocal<T>
leonken88:
cvCalcEigenDecomposite——opencv内置PCA算法
weixin_44819994: