JDK Logger指定配置文件

默认情况下,JDK的LogManager会在JRE目录下的"lib/logging.properties"这个文件中读取配置。

除此之外,LogManager还可以根据两个系统属性来允许用户控制日志的配置:

  • "java.util.logging.config.class"
  • "java.util.logging.config.file"

其中,class这个属性优先有效,如果设置,会忽略file这个属性。

Java中设置属性也有两种方法:

  • Preferences API
  • 启动的时候,命令行参数

使用Preferences API设置如下:

System.setProperty("java.util.logging.config.class", "Your class");

或者:

System.setProperty("java.util.logging.config.file", "Your properties file");

设置之后需要调用以下代码方可生效:

LogManager.getLogManager().readConfiguration();

命令行参数是指,启动的时候用 -D<name>=<value>的方式指定属性,具体到这里,我们就可以用

java -Djava.util.logging.config.file=abc.properties YourMainClass

指定使用 abc.properties 这个文件作为配置文件。如果需要,可以加上文件的路径名。

tomcat指定日志配置文件就是使用的命令行参数,用记事本打开${tomcat_home}/bin/catalina.bat文件,可以看到如下内容:

if not "%LOGGING_CONFIG%" == "" goto noJuliConfig
set LOGGING_CONFIG=-Dnop
if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%

 

一个简单的自定义配置文件如下:

############################################################
#  	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,java.util.logging.FileHandler

# 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/java%u.log
#java.util.logging.FileHandler.pattern = ..\\logs\\logger.log
java.util.logging.FileHandler.pattern = C:\\zzj\\logger.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
#java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

# 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
java.util.logging.ConsoleHandler.formatter = java.util.logging.XMLFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

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

在默认配置文件的基础上添加了FileHandler,并且指定日志文件路径为C:\\zzj\\logger.log,使用SimpleFormatter格式化输出。

注意:日志文件路径不能直接在盘符下,例如不能指定日志文件路径为C:\\logger.log。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值