nohup java -jar -Dserver.port=9090
-Dcatalina.home=/data/softwares/app/tomcat-test-xxl-job-9090/logback-logs/ #打印logback日志 info error warn debug 产生不同文件 catalina.home为logback.xml中的变量
xxl-job-admin-2.0.2.jar >
/data/softwares/app/tomcat-test-xxl-job-9090/logs/xxljog.log #汇总所有日志打印位置
2>&1 &
完整命令:
nohup java -jar -Dserver.port=9090 -Dcatalina.home=/data/softwares/app/tomcat-test-xxl-job-9090/logback-logs/ xxl-job-admin-2.0.2.jar > /data/softwares/app/tomcat-test-xxl-job-9090/logs/xxljog.log 2>&1 &
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--日志文件输出的文件名 -->
<file>${catalina.home}/logs/xxl.log</file>
<!-- 固定数量的日志文件,防止将磁盘占满 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${catalina.home}/logs/%d{yyyy-MM-dd}/xxladmin.%d{yyyy-MM-dd}.%i.log
</FileNamePattern>
<MaxHistory>30</MaxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSSZ} [%X{requestURIWithQueryString}] %-5level %logger{20} - %msg%n
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home}/logs/offline-error.log</file>
<Append>true</Append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.home}/logs/%d{yyyy-MM-dd}/xxladmin-error.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>
<![CDATA[[%d{yyyy-MM-dd HH:mm:ss.SSSZ} ] - %X{method} %X{requestURIWithQueryString} [ip=%X{remoteAddr}, ref=%X{referrer}, ua=%X{userAgent}, sid=%X{cookie.JSESSIONID}]%n %-5level %logger{35} - %m%n]]>
</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout name="StandardFormat" class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{20}:%line - %msg%n</pattern>
</layout>
</appender>
<!-- 异步输出 -->
<appender name ="ASYNC_APP" class= "ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>20</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>512</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref ="FILE"/>
</appender>
<root level="INFO">
<appender-ref ref="ASYNC_APP"/>
<appender-ref ref="errorLog"/>
<appender-ref ref="CONSOLE"/> <!-- 控制台输出 -->
</root>
</configuration>