Search code examples
javadebianlog4jreload4j

Slf4J don´t log into a file when running inside a Linux Screen session


Slf4j Should log into the LatestLog.log file

  • When I run my jar file with "java -jar Bot.jar args..." it works and logs into /logs/LatestLog.log.
  • When I run it with "screen -d -m -S TestBot java -jar Bot.jar" it don´t do anything.

Someone a idea how I can fix this?

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-reload4j</artifactId>
    <version>1.7.36</version>
    <scope>runtime</scope>
</dependency>
log4j.rootLogger=INFO, stdout, fout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=INFO
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{'['HH:mm:ss']'} >> %-5p<< | %m%n
#log4j.appender.stdout.layout.ConversionPattern=%d{'['HH:mm:ss']'} >> %-5p<< [%c{2}] --> %m%n

log4j.appender.fout=org.apache.log4j.FileAppender
log4j.appender.fout.Threshold=DEBUG
log4j.appender.fout.File=logs/Latestlog.log
log4j.appender.fout.layout=org.apache.log4j.PatternLayout
log4j.appender.fout.layout.ConversionPattern=%d{'['dd.MM.yyyy' | 'HH:mm:ss']'} >> %-5p << [%c] - %m%n

#log4j.appender.fout.org.apache.http.wire=INFO
log4j.logger.org.apache.http.wire=INFO
log4j.logger.org.apache.http.headers=INFO

OS: Debian 4.19.269-1

What I tryed:

  • Changing folder persimmons for the "/logs" file.
  • I googled a bunch of stuff, but can´t finde a solution either.

Solution

  • The problem was that i used: screen -d -m -S TestBot java -jar /path/to/the/bot/Bot.jar from the root directory.

    If i go into the Directory first with: cd /path/to/the/bot An then use screen -d -m -S TestBot java -jar Bot.jar it works just fine