log4j.properties文件示例

In log4j tutorial, we saw how to use log4j xml based configuration. But log4j.xml is verbose, so log4j framework provide option to read configuration from properties file too.

log4j教程中 ,我们了解了如何使用基于log4j xml的配置。 但是log4j.xml是冗长的,因此log4j框架也提供了从属性文件读取配置的选项。

Since properties file don’t have any defined schema to validate, we have to be more careful with it. Today we will see how XML configurations can be converted to properties based configuration.

由于属性文件没有要验证的已定义架构,因此我们必须格外小心。 今天,我们将看到如何将XML配置转换为基于属性的配置。

根记录器 (Root Logger)

Root logger is used when there is no match with a logger. It’s defined like below in XML.

与记录器不匹配时使用根记录器。 它的定义类似于下面的XML。

<root>
	<priority value="DEBUG" />
	<appender-ref ref="file" />
	<appender-ref ref="console" />
</root>

It can be defined in properties file as below.

可以在属性文件中定义如下。

log4j.rootLogger=DEBUG, file, console

The first value in comma separated list is the root logging level value. All other values are appenders.

逗号分隔列表中的第一个值是根日志记录级别值。 所有其他值都是追加器。

Log4j Appenders (Log4j Appenders)

We can have multiple appenders in log4j. Below are two appenders, one for console logging and another to file.

我们在log4j中可以有多个追加程序。 以下是两个附加程序,一个用于控制台日志记录,另一个用于文件记录。

<!-- console appender -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
	<param name="Target" value="System.out" />
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%-5p %c{1} - %m%n" />
	</layout>
</appender>

<!-- rolling file appender -->
<appender name="file" class="org.apache.log4j.RollingFileAppender">
	<param name="File" value="logs/main.log" />
	<param name="Append" value="true" />
	<param name="ImmediateFlush" value="true" />
	<param name="MaxFileSize" value="10MB" />
	<param name="MaxBackupIndex" value="5" />

	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d %d{Z} [%t] %-5p (%F:%L) - %m%n" />
	</layout>
</appender>

In log4j.properties file, they will be defined as below.

在log4j.properties文件中,它们将定义如下。

#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

#Define rolling file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/main.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

So the format for log4j properties file appender is log4j.appender.{appender_name}.{appender_config}. Notice that the appenders configurations such as MaxFileSize, MaxBackupIndex are same as in XML configuration file.

因此,log4j属性文件追加器的格式为log4j.appender.{appender_name}.{appender_config} 。 请注意,诸如MaxFileSizeMaxBackupIndex类的附加程序配置与XML配置文件中的相同。

Log4j记录器 (Log4j loggers)

Just like appenders, we can have multiple loggers. For example of xml based configuration;

就像追加程序一样,我们可以有多个记录器。 例如基于xml的配置;

<logger name="com.journaldev.log4j" additivity="false">
	<level value="WARN" />
	<appender-ref ref="file" />
	<appender-ref ref="console" />
</logger>

<logger name="com.journaldev.log4j.logic" additivity="false">
	<level value="DEBUG" />
	<appender-ref ref="file" />
</logger>

They will be defined in properties file as log4j.logger.{logger_name}. The values contain logging level and list of appenders to use.

它们将在属性文件中定义为log4j.logger.{logger_name} 。 这些值包含日志记录级别和要使用的附加程序列表。

#Define loggers
log4j.logger.com.journaldev.log4j=WARN, file, console
log4j.logger.com.journaldev.log4j.logic=DEBUG, file, console

Log4j记录器可加性 (Log4j logger additivity)

Additivity usage is shown in above logger xml configuration, it’s the attribute of logger element. Below is the way to use it in log4j properties file configuration as log4j.additivity.{logger_name}.

上面的logger xml配置中显示了可加性用法,它是logger元素的属性。 以下是在log4j属性文件配置中以log4j.additivity.{logger_name}使用它的方法。

#setting additivity
log4j.additivity.com.journaldev.log4j=false
log4j.additivity.com.journaldev.log4j.logic=false

Based on above, below is my final log4j.properties file.

基于上面,下面是我的最终log4j.properties文件。

#Define root logger options
log4j.rootLogger=DEBUG, file, console

#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

#Define rolling file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/main.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

#Define loggers
log4j.logger.com.journaldev.log4j=WARN, file, console
log4j.logger.com.journaldev.log4j.logic=DEBUG, file, console

#setting additivity
log4j.additivity.com.journaldev.log4j=false
log4j.additivity.com.journaldev.log4j.logic=false

Log4j PropertyConfigurator (Log4j PropertyConfigurator)

PropertyConfigurator is used to configure log4j settings. It’s optional if the file name is log4j.properties and it’s in the project classpath. We have to configure it before using the logger.

PropertyConfigurator用于配置log4j设置。 如果文件名是log4j.properties并且在项目类路径中,则它是可选的。 在使用记录器之前,我们必须对其进行配置。

Here is a simple program showing how to configure and use log4j logging.

这是一个简单的程序,显示了如何配置和使用log4j日志记录。

package com.journaldev.log4j.main;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.journaldev.log4j.logic.MathUtils;

public class Log4jExample {

	static{
		init();
	}
	
	private final static Logger logger = Logger.getLogger(Log4jExample.class);
	
	public static void main(String[] args) {

		logger.debug("My Debug Log");
		logger.info("My Info Log");
		logger.warn("My Warn Log");
		logger.error("My error log");
		logger.fatal("My fatal log");
				
	}

	/**
	 * method to init log4j configurations
	 */
	private static void init() {
		PropertyConfigurator.configure("log4j.properties");
	}

}

When it’s executed, you will get below in console log.

执行后,您将在控制台日志中找到以下内容。

WARN  Log4jExample - My Warn Log
ERROR Log4jExample - My error log
FATAL Log4jExample - My fatal log

At the same time, you will see logs getting generated in main.log file as below.

同时,您将在main.log文件中看到如下生成的日志。

2016-05-14 00:34:11,994 +0530 [main] WARN  (Log4jExample.java:20) - My Warn Log
2016-05-14 00:34:11,995 +0530 [main] ERROR (Log4jExample.java:21) - My error log
2016-05-14 00:34:11,995 +0530 [main] FATAL (Log4jExample.java:22) - My fatal log

Notice that debug and info logger are not getting printed because the minimum logging level is set as WARN. That’s all for log4j properties file example usage. Happy Logging!

请注意,由于最低记录级别设置为WARN,因此未打印调试和信息记录器。 这就是log4j属性文件示例用法的全部内容。 祝您伐木愉快!

翻译自: https://www.journaldev.com/10698/log4j-properties-file-example

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值