簡體   English   中英

Java log4j 記錄器不創建日志文件

[英]Java log4j logger doesn't create log files

我寫了一個基於 java 的小電報機器人。 我還連接了記錄器(log4j 庫)以記錄機器人活動。

服務器重啟后,cron 使用以下命令自動執行 bot jar-file:

@reboot sleep 5 && java -jar /var/blablabla/praetorian19-1.0-jar-with-dependencies.jar

在這種情況下,logger 不會創建任何日志文件。

但是,如果我使用相同的命令直接在 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>

有什么想法我必須挖掘哪一邊?

這可能是文件或目錄權限的問題......或類似的問題。 解決這個問題的方法是遵循 Log4j FAQ 中關於 “如何調試我的配置”的建議

  1. 檢查類路徑上是否有正確的 JAR 文件
  2. 啟用 Log4j 內部日志記錄(按照說明)並查看它在做什么。

除其他事項外,您需要確定您實際使用的是哪些日志配置。 (Log4j 不能同時使用它們......)

crontab 任務中的這個字符串幫助我將日志存儲在文件中:@reboot sleep 5 && java -jar /var/blabla/praetorian19-1.0-jar-with-dependencies.jar > /var/blabla/botlog.log

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM