使用单个logging.properties记录到不同的文件

时间:2012-12-18 20:36:52

标签: java logging

我正在尝试配置多个应用程序之间共享的logging.properties文件。我想要一个我的类的特定日志文件,但我不希望其他日志(来自其他类)包含在该文件中。

如何通过仅修改logging.properties文件来实现此目的?

我有以下logging.properties文件:

############################################################
#   Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.  
# For example java -Djava.util.logging.config.file=myfile
############################################################
############################################################
#   Global properties
############################################################
# "handlers" specifies a comma separated list of log Handler 
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler
# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= INFO
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
# default file output is in user's home directory.

java.util.logging.FileHandler.pattern =%h / default.log(所有日志当前都转到此文件)

java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:

my.class.logger.level = INFO(我希望此类登录到文件/home/myuser/myclass.log)

other.class.logger.level = ALL

1 个答案:

答案 0 :(得分:2)

也可以使用纯jdk(尝试使用jdk 7或jdk 8)。

只需创建自定义文件处理程序;使用类似于“java.util.logging.FileHandler”并扩展它。

公共类JULTestingFileHandler扩展了FileHandler {

public JULTestingFileHandler() throws IOException, SecurityException 
{
    super();    
}

} 用户属性文件;

com.xxx.handlers = com.xxx.JULXXXFileHandler

com.xxx.JULXXXFileHandler.pattern = ./logs/test1_test2.%u.%g.log