在Groovy中配置日志记录

时间:2015-03-25 22:01:02

标签: java groovy

我在Groovy中使用java日志记录,我想修改格式字符串,所以我只有一行而不是两行,但我尝试的方法没有用 - 我看了这个问题:

How do I get java logging output to appear on a single line?

我尝试将该属性传递给groovy,但它并没有改变格式。

我这样通过了:

groovy myScript.groovy -Djava.util.logging.SimpleFormatter.format=%1$tF %1$tT

但它看起来并没有被拾起。

2 个答案:

答案 0 :(得分:2)

这就是我所做的 - 我将此代码添加到我的groovy中:

    System.setProperty("java.util.logging.SimpleFormatter.format",
 '%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$-6s %5$s%6$s%n');
    Logger log = Logger.getLogger("")
    FileHandler fh = new FileHandler("../log/replication.log")
    log.addHandler(fh)
    SimpleFormatter formatter = new SimpleFormatter()
    fh.setFormatter(formatter)

这不要求我在命令行中修改java属性(我不想创建额外的脚本来启动我的groovy脚本)。

答案 1 :(得分:1)

您可以使用JAVA_OPTS。例如,

import java.util.logging.*

Logger log = Logger.getLogger('test')
log.setLevel(Level.INFO)

log.info('Test info log')
log.warning('Test warning')
log.config('Test config')
log.fine('Test fine')

和设置(即下面的窗口):

set JAVA_OPTS="-Djava.util.logging.SimpleFormatter.format=%1$tF %1$tT [%4$s] %5$s %n"

运行上面的示例脚本会产生:

> groovy testLoggingJavaUtil.groovy
2015-03-27 17:35:48 [INFO] Test info log
2015-03-27 17:35:48 [WARNING] Test warning