【发布时间】:2020-01-13 11:44:33
【问题描述】:
我写了一个基于 java 的小电报机器人。我还连接了记录器(log4j 库)以记录机器人活动。
在服务器重启 cron 后,使用此命令自动执行 bot jar-file:
@reboot sleep 5 && java -jar /var/blablabla/praetorian19-1.0-jar-with-dependencies.jar
在这种情况下,记录器不会创建任何日志文件。
但是,如果我直接在 root 下使用相同的命令启动 bot,一切正常。我看到了新的日志文件并且它们更新正确。
目录和bot文件递归有777条规则。
知道我必须挖哪一边吗?
log4j 属性:
# Уровень логирования
log4j.rootLogger=DEBUG, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p- %m%n
# Апендер для работы с файлами
log4j.appender.file=org.apache.log4j.RollingFileAppender
# Путь где будет создаваться лог файл
log4j.appender.file.File=log_file.log
# Указываем максимальный размер файла с логами
log4j.appender.file.MaxFileSize=200MB
# Конфигурируем шаблон вывода логов в файл
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<!-- Author: Crunchify.com -->
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
</Console>
<RollingFile name="RollingFile" filename="log_file.log"
filepattern="${logPath}/%d{YYYYMMddHHmmss}-.log">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
<Policies>
<SizeBasedTriggeringPolicy size="100 MB" />
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
【问题讨论】:
-
代码在哪里?
-
对不起。已经完成了
-
log4j2.xml文件的相关性是什么?你用的是 log4j 还是 log4j2?
标签: java logging cron log4j bots