123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration scan="true" scanPeriod="120 seconds">
- <property resource="application.properties" />
- <!-- 彩色日志 -->
- <!-- 彩色日志依赖的渲染类 -->
- <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
- <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
- <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
- <!-- 彩色日志格式 -->
- <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
- <!-- appender -->
- <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>${logger.level}</level>
- </filter>
- <!-- encoder 默认配置为PatternLayoutEncoder -->
- <encoder>
- <pattern>
- ${CONSOLE_LOG_PATTERN}
- </pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名 -->
- <FileNamePattern>/www/logs/${spring.application.name}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文件保留天数 -->
- <MaxHistory>10</MaxHistory>
- </rollingPolicy>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger.%M - %m%n
- </pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <appender name="exceptionAdvice-log" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名 -->
- <FileNamePattern>/www/logs/exceptionAdvice/exception-${spring.application.name}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文件保留天数 -->
- <MaxHistory>10</MaxHistory>
- </rollingPolicy>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger.%M - %m%n
- </pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <appender name="aijia-all-system" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名 -->
- <FileNamePattern>/www/logs/systemlog/system-${spring.application.name}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文件保留天数 -->
- <MaxHistory>10</MaxHistory>
- </rollingPolicy>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger.%M - %m%n
- </pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <appender name="SOCKET" class="net.logstash.logback.appender.LogstashSocketAppender">
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>ERROR</level>
- </filter>
- <host>172.18.30.195</host>
- <port>9600</port>
- </appender>
- <appender name="LOGSTASHJSON"
- class="net.logstash.logback.appender.LogstashTcpSocketAppender">
- <destination>172.18.30.195:9600</destination>
- <queueSize>1048576</queueSize>
- <encoder charset="UTF-8"
- class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
- <providers>
- <timestamp>
- <timeZone>UTC</timeZone>
- </timestamp>
- <pattern>
- <pattern>
- {
- <!--日志级别 -->
- "level": "%level",
- <!--应用名称 -->
- "appName": "${spring.application.name:-}",
- <!--线程名称 -->
- "thread": "%thread",
- "class": "%logger{40}",
- <!--日志信息 -->
- "message": "%message" ,
- <!--打印时间 -->
- "timestamp":"%date{ISO8601}",
- <!--日志堆栈 -->
- "stack_trace": "%exception",
- "Phoneimei" :"%mdc{phoneimei}",
- "phonesys" :"%mdc{phonesys}",
- "phonetype" :"%mdc{phonetype}",
- "version" :"%mdc{version}",
- "platform" :"%mdc{platform}",
- "build" :"%mdc{build}",
- "apiUrl" :"%mdc{apiUrl}",
- "methodName" :"%mdc{methodName}",
- "ipAddress" :"%mdc{ipAddress}",
- "accessToken" :"%mdc{accessToken}",
- "userId" :"%mdc{userId}",
- "requestMap" :"%mdc{requestMap}",
- "apiName" :"%mdc{apiName}",
- "postBody" :"%mdc{postBody}"
- }
- </pattern>
- </pattern>
- </providers>
- </encoder>
- </appender>
- <appender name="logstash_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--日志文件输出的文件名 -->
- <FileNamePattern>/www/logs/apilog/api_log_${spring.application.name}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <MaxHistory>10</MaxHistory>
- </rollingPolicy>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>
- %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger.%M - %msg%n
- </pattern>
- <charset>UTF-8</charset>
- </encoder>
- </appender>
- <!-- 1. 输出SQL 到控制台和文件-->
- <logger name="org.hibernate.SQL" additivity="false" >
- <level>${logger.level}</level>
- <appender-ref ref="file" />
- </logger>
- <!-- 2. 输出SQL 的参数到控制台和文件-->
- <logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false" level="${logger.level}" >
- <level>${logger.level}</level>
- <appender-ref ref="file" />
- </logger>
- <root level="${logger.level}" >
- <appender-ref ref="stdout" />
- <appender-ref ref="file" />
- </root>
- <logger name="com.alibaba.dubbo" level="ERROR"/>
- <logger name="org.apache.zookeeper.ZooKeeper" level="ERROR"/>
- <!-- custom logger -->
- <logger name="com.ssj" level="${logger.level}" additivity="false">
- <appender-ref ref="stdout" />
- <appender-ref ref="file" />
- </logger>
- <logger name="aijia" level="${logger.level}">
- <appender-ref ref="aijia-all-system"/>
- </logger>
- <logger name="exceptionAdvice" level="error">
- <appender-ref ref="exceptionAdvice-log"/>
- </logger>
- <logger name="com.ssj.framework.core.security.SecurityAspect" level="ERROR"/>
- <logger name="com.ssj.aijia.config.RequestApiLogInterceptor" level="error" additivity="false">
- <appender-ref ref="logstash_file" />
- <appender-ref ref="LOGSTASHJSON"/>
- <appender-ref ref="SOCKET"/>
- </logger>
- </configuration>
|