我有一些打包为可执行 jar 文件的应用程序。现在,我将带有文件附加程序的日志记录添加到应用程序中。问题是我使用以下命令在服务器上运行这些应用程序:
nohup java -jar app.jar &
nohup.out 捕获所有输出并破坏轮换日志文件和分离错误和信息日志的全部目的。 我不想将我的应用程序作为服务运行(有很多)所以想知道是否有一种方法可以在后台无限地执行 jar 并将 logback 记录到 logback.xml 中定义的文件 如果有帮助,这是我的 logback.xml 文件:
<configuration debug="true">
<appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/home/user/logs/kafka/orders/kafka-consumer.info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<totalSizeCap>3GB</totalSizeCap>
<maxHistory>200</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d %p %c{1.} %m%n</pattern>
</encoder>
</appender>
<appender name="FILE-ROLLING-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>/home/user/logs/kafka/orders/kafka-consumer.error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<totalSizeCap>3GB</totalSizeCap>
<maxHistory>200</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d %p %c{1.} %m%n%ex{100}</pattern>
</encoder>
</appender>
<logger name="kafkaLogger" level="info" additivity="false">
<appender-ref ref="FILE-ROLLING"/>
</logger>
<logger name="kafkaLoggerError" level="error" additivity="false">
<appender-ref ref="FILE-ROLLING-ERROR"/>
</logger>
<root level="info">
<appender-ref ref="FILE-ROLLING"/>
<appender-ref ref="FILE-ROLLING-ERROR"/>
</root>
</configuration>
最佳答案
您需要将配置文件传递给logback系统。
nohup java -jar app.jar -DLogback.configurationFile=/path/to/Logback.xml &
关于java - 使用 logback 和 nohup 在 Debian 后台运行 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57833486/