我的程序在某些Linux机器上作为服务运行。我发现在Ubuntu 16上记录是可以的但是在CentOS上(Linux本地3.10.0-514.21.1.el7.x86_64#1 SMP星期五5月25日17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux)我这样做不要观察在/ var / log中创建的日志文件。
Log4j2 config
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingFile name="InfoFileAppender"
fileName="/var/log/MY.log"
filePattern="/var/log/MY.log.%d{yyyy-MM-dd-hh-mm}.gz">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console" level="TRACE"/>
<AppenderRef ref="InfoFileAppender" level="TRACE"/>
</Root>
</Loggers>
</Configuration>
但是,当我运行 sudo service myservice status 时,我确实看到几行日志 - 所以他们必须到达其他地方!
我猜测,也许journalctl可以向我显示一些日志,并使用https://www.loggly.com/ultimate-guide/using-journalctl/来获取一些日志拖尾命令,但是如果有任何结果,它会回复“没有找到日志文件。”
我怎么可能解决这个问题?
答案 0 :(得分:1)
这似乎很像我的许可问题。您应该为您的用户授予/ var / log。
的写权限