开源项目
知识点
相关文章
更多最近更新
更多log4j配置日志输出到文件
2019-04-27 18:42|来源: 网路
要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender。有以下FileAppender的配置参数:
FileAppender配置:
属性 | 描述 |
---|---|
immediateFlush | 标志的默认设置为true,这意味着输出流的文件被刷新,在每个追加操作 |
encoding | 它可以使用任何字符编码。默认情况下是特定于平台的编码方案 |
threshold | 这个 appender 阈值级别 |
Filename | 日志文件的名称 |
fileAppend | 默认设置为true,这意味着记录的信息被附加到同一文件的末尾 |
bufferedIO | 此标志表示是否需要写入缓存启用。默认设置为false |
bufferSize | 如果 bufferedI/O 启用,这表示缓冲区的大小,默认设置为8KB |
下面是一个示例配置文件 log4j.properties 的 FileAppender。
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender # Set the name of the file log4j.appender.FILE.File=${log}/log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, overwrite log4j.appender.FILE.Append=false # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
如果喜欢相当于上述log4j.properties文件的XML配置文件,在这里是xml配置文件的内容:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="FILE" class="org.apache.log4j.FileAppender"> <param name="file" value="${log}/log.out"/> <param name="immediateFlush" value="true"/> <param name="threshold" value="debug"/> <param name="append" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="conversionPattern" value="%m%n"/> </layout> </appender> <logger name="log4j.rootLogger" additivity="false"> <level value="DEBUG"/> <appender-ref ref="FILE"/> </logger> </log4j:configuration>
日志记录到多个文件:
当想要写日志信息转化多个文件要求一样,例如,如果文件大小达到一定的阈值等。
写日志记录信息分成多个文件,必须扩展FileAppender类,并继承其所有属性useorg.apache.log4j.RollingFileAppender类。
有以下除了已如上所述为 FileAppender 可配置参数:
属性 | 描述 |
---|---|
maxFileSize | 上述的文件的回滚临界尺寸。默认值是10MB |
maxBackupIndex | 此属性表示要创建的备份文件的数量。默认值是1 |
下面是一个示例配置文件log4j.properties的RollingFileAppender进行
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.RollingFileAppender # Set the name of the file log4j.appender.FILE.File=${log}/log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, should not overwrite log4j.appender.FILE.Append=true # Set the maximum file size before rollover log4j.appender.FILE.MaxFileSize=5KB # Set the the backup index log4j.appender.FILE.MaxBackupIndex=2 # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
如果想有一个XML配置文件,可以生成中提到的初始段,并添加相关的 RollingFileAppender 进行唯一额外的参数。
此示例配置说明每个日志文件的最大允许大小为5MB。当超过最大尺寸,新的日志文件将被创建并因为maxBackupIndex被定义为2,当第二个日志文件达到最大值,第一个日志文件将被删除,之后所有的日志信息将被回滚到第一个日志文件。
每天生成日志文件:
当想生成每一天的日志文件,以保持日志记录信息的良好记录。
日志记录信息纳入日常的基础文件,就必须它扩展FileAppender类,并继承其所有属性useorg.apache.log4j.DailyRollingFileAppender类。
有除了已如上所述为 FileAppender 只有一个重要的下列配置参数:
Property | 描述 |
---|---|
DatePattern | 这表示在滚动的文件,并按命名惯例来执行。默认情况下,在每天午夜滚动 |
DatePattern控制使用下列滚动的时间表方式之一:
DatePattern | 描述 |
---|---|
'.' yyyy-MM | 滚动在每个月的结束和下一个月初 |
'.' yyyy-MM-dd | 这是默认值,每天午夜滚动 |
'.' yyyy-MM-dd-a | 滚动每一天的午夜和中午 |
'.' yyyy-MM-dd-HH | 滚动在每一个小时 |
'.' yyyy-MM-dd-HH-mm | 滚动在每一个分钟 |
'.' yyyy-ww | 滚动每个星期取决于区域设置时的第一天 |
下面是一个示例配置文件log4j.properties生成日志文件滚动的在每天午夜。
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender # Set the name of the file log4j.appender.FILE.File=${log}/log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, should not overwrite log4j.appender.FILE.Append=true # Set the DatePattern log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
如果想使用XML配置文件,可以生成中提到的初始段,并添加相关DailyRollingFileAppender 唯一的额外参数和数据。
相关问答
更多-
tomcat 自己有个日志包,它会有个日志输出,在tomcat根目录下; 你自己写的这个,看看是不是Level设置上的问题(级别的设置)。 这个是Tomcat安装目录下有自己的日志配置文件;我的是D:\tomcat\conf\logging.properties 这个文件定义了Tomcat自己的日志输出配置,级别是INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 希望这个对你有点用哈!!
-
如何配置log4j只保留最近7天的日志文件?(How to configure log4j to only keep log files for the last seven days?)[2022-03-17]
您可以在单独的脚本中执行您的内务管理,该脚本可以每天运行。 这样的东西 find /path/to/logs -type f -mtime +7 -exec rm -f {} \; You can perform your housekeeping in a separate script which can be cronned to run daily. Something like this: find /path/to/logs -type f -mtime +7 -exec rm -f {} \ ... -
使用Log4j XML配置文件配置Hibernate日志记录?(Configuring Hibernate logging using Log4j XML config file?)[2023-04-12]
从http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-logging 以下是记录器类别列表: Category Function org.hibernate.SQL Log all SQL DML statements as they are executed org.hibernate.type ... -
log4j:配置导致重复的消息写入日志文件(log4j: configuration causes duplicate messages to be written to the log file)[2023-09-29]
Appender可加性不是在appender上配置的,而是在记录器上配置的( https://logging.apache.org/log4j/1.2/manual.html#additivity ) 由于您已将appender添加到根记录器,因此以后不需要再次添加它们。 您应该使用所需的日志级别定义其他记录器: log4j.logger.org.apache=ERROR log4j.logger.org.apache=ERROR log4j.logger.com.aktion.storefront.pi ... -
删除时将log4j配置为自动创建应用程序日志文件(Configure log4j to Auto create application log files when deleted)[2022-02-23]
我认为你在web应用程序中使用log4j,所以下面的方法可能会有所帮助: 编写一个jsp文件来重新配置log4j。 把它放在webapp floder中。 像这样: reset.jsp <% java.util.Properties pro = new java.util.Properties(); pro.put("log4j.appender.A1.Threshold","INFO"); pro.put("log4j.appender.A1","org.apache.log4j. ... -
在配置文件集的第3行:debug =“false”。 On line #3 of your configuration file set: debug="false".
-
以下是我最终想到的结果: log4j.rootLogger=INFO,console,stdLog,errorLog #console appender log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = %t %-5p ...
-
在log4j中使用RollingFileAppender滚动日志文件(Using RollingFileAppender in log4j for rolling log files)[2022-04-15]
互联网上有很多例子 ,例如这会创建一个每日滚动日志文件,转到log4jtest.log.2010-08-25等 # configure the root logger log4j.rootLogger=INFO, DAILY # configure the daily rolling file appender log4j.appender.DAILY=org.apache.log4j.DailyRollingFileAppender log4j.appender.DAILY.File=/tmp/log4 ... -
您将希望在每个appender上使用阈值 - 完全如单个Logger的每个appender的Log Level所述。 因此,将additivity设置为true,然后添加: log4j.appender.root.Threshold=WARN 有关详细信息,请访问http://logging.apache.org/log4j/1.2/faq.html#a2.9 :“是否可以按级别将日志输出定向到不同的appender?” 只是我的额外0.02美元:我建议切换到XML格式而不是属性格式 - 这将很好地为迁移 ...
-
您不需要为每个线程创建一个配置文件,但可以通过编程方式添加appender。 例如: public static class TestJob implements Job { private Logger logger; private RollingFileAppender appender; private void init() { logger = Logger.getLogger(TestJob.class); appender = ne ...