[英]Run a java application in background on Debian with logback and nohup
我有一些打包為可執行jar文件的應用程序。 現在,我向應用程序添加了帶有文件追加程序的logback日志記錄。 問題是我使用以下命令在服務器上運行這些應用程序:
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>
您需要將配置文件傳遞到登錄系統。
nohup java -jar app.jar -DLogback.configurationFile=/path/to/Logback.xml &
我認為執行此操作的方法之一是這樣的:
nohup setsid java -jar app.jar -Dparams=xyz </dev/null >/dev/null 2>&1 &
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.