linux java打印日志,linux 查询 java 日志输出两份日志

在 linux 中,我们经常会在运行一个 jar 程序之后随即打开它的 tail -f /xxx/out.log 功能,然后我们就发现一个奇怪的现象,就是所有的日志都被输出两行,而且日志的内容都是一样的,这个很奇怪,为什么呢?

通常我们的启动脚本这么写:

#!/bin/sh

java -jar dataInsertKeyword.jar &

tail -f /data/logs/dataInsert/dataInsert.log

因为我们通常在配置 log4j.properties 文件的时候就指定的如下的输出格式

#config root logger

log4j.rootLogger = DEBUG,stdout,rolling_file

# Console Appender #

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.encoding=UTF-8

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d[%p] %c[%M(%L)] - %m%n

log4j.appender.stdout.Threshold=INFO

# Rolling File #

log4j.appender.rolling_file=org.apache.log4j.DailyRollingFileAppender

log4j.appender.rolling_file.Threshold=INFO

log4j.appender.rolling_file.encoding=UTF-8

#windows os

log4j.appender.rolling_file.File=/data/logs/out.log

#linux os

#log4j.appender.rolling_file.File=/data/default/default.log

log4j.appender.rolling_file.DatePattern='_'yyyy-MM-dd_HH

log4j.appender.rolling_file.layout=org.apache.log4j.PatternLayout

log4j.appender.rolling_file.layout.ConversionPattern=%d[%p] %c[%M(%L)] - %m%n

这样就导致一个问题,本身在我们启动程序的时候,日志已经被输出到了 stdout 了,stdout 就是输出到控制台的意思,本来就输出一次了,然后我们又执行了

tail -f /data/logs/dataInsert/dataInsert.log

命令,吧日志又输出一次,所以我们会看到日志被打印两次,实际上是一次,只不过我们看到了两次而已。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值