1.配置plumelog.yml
version : '3'
services :
plumelog :
image : registry.cn- hangzhou.aliyuncs.com/k8s- xiyan/plumelog: 3.5.3
container_name : plumelog
ports :
- "8891:8891"
environment :
plumelog.model : redis
plumelog.queue.redis.redisHost : redis: 6379
plumelog.queue.redis.redisPassWord : W0CNwUW12eZe3sXynXSXIuqYpH3MBh7n
plumelog.queue.redis.redisDb : 15
plumelog.es.esHosts : elasticsearch: 9200
admin.log.keepDays : 7
admin.log.trace.keepDays : 7
plumelog.ui.url : http: //172.16.2.43: 8891
admin.password : 123456
login.username : admin
login.password : admin
2.执行
docker-compose -f plumelog.yml up -d
3.JAVA整合
< dependency>
< groupId> com.plumelog</ groupId>
< artifactId> plumelog-logback</ artifactId>
< version> 3.5.3</ version>
</ dependency>
4.bootstrap.yml 配置
plumelog:
env: dev
redis-host: 172.16.2.43:6379
redis-auth: W0CNwUW12eZe3sXynXSXIuqYpH3MBh7n
5.logback-spring.xml配置
<?xml version="1.0" encoding="UTF-8"?>
< configuration scan = " true" scanPeriod = " 60 seconds" debug = " false" >
< property name = " log.path" value = " /opt/service/logs/portrait-model" />
< property name = " log.pattern"
value = " [%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%thread][%X{traceId}][%X{requestUser}][%X{requestUrl}] %logger{40}:%L - %msg%n" />
< appender name = " console" class = " ch.qos.logback.core.ConsoleAppender" >
< encoder>
< pattern> ${log.pattern}</ pattern>
</ encoder>
</ appender>
< appender name = " file_info" class = " ch.qos.logback.core.rolling.RollingFileAppender" >
< file> ${log.path}/info.log</ file>
< rollingPolicy class = " ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
< fileNamePattern> ${log.path}/info-%d{yyyy-MM-dd}-%i.log</ fileNamePattern>
< timeBasedFileNamingAndTriggeringPolicy class = " ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
< maxFileSize> 512MB</ maxFileSize>
</ timeBasedFileNamingAndTriggeringPolicy>
< maxHistory> 7</ maxHistory>
</ rollingPolicy>
< encoder>
< pattern> ${log.pattern}</ pattern>
</ encoder>
< filter class = " ch.qos.logback.classic.filter.LevelFilter" >
< level> INFO</ level>
< onMatch> ACCEPT</ onMatch>
< onMismatch> DENY</ onMismatch>
</ filter>
</ appender>
< appender name = " file_error" class = " ch.qos.logback.core.rolling.RollingFileAppender" >
< file> ${log.path}/error.log</ file>
< rollingPolicy class = " ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
< fileNamePattern> ${log.path}/error-%d{yyyy-MM-dd}-%i.log</ fileNamePattern>
< timeBasedFileNamingAndTriggeringPolicy class = " ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
< maxFileSize> 512MB</ maxFileSize>
</ timeBasedFileNamingAndTriggeringPolicy>
< maxHistory> 7</ maxHistory>
</ rollingPolicy>
< encoder>
< pattern> ${log.pattern}</ pattern>
</ encoder>
< filter class = " ch.qos.logback.classic.filter.LevelFilter" >
< level> ERROR</ level>
< onMatch> ACCEPT</ onMatch>
< onMismatch> DENY</ onMismatch>
</ filter>
</ appender>
< springProperty scope = " context" name = " plumelog.appName" source = " spring.application.name" />
< springProperty scope = " context" name = " plumelog.redisHost" source = " plumelog.redis-host" />
< springProperty scope = " context" name = " plumelog.redisAuth" source = " plumelog.redis-auth" />
< springProperty scope = " context" name = " plumelog.env" source = " plumelog.env" />
< appender name = " plumelog" class = " com.plumelog.logback.appender.RedisAppender" >
< appName> ${plumelog.appName}</ appName>
< redisHost> ${plumelog.redisHost}</ redisHost>
< redisAuth> ${plumelog.redisAuth}</ redisAuth>
< redisDb> 15</ redisDb>
< env> ${plumelog.env}</ env>
</ appender>
< root level = " info" >
< appender-ref ref = " console" />
< appender-ref ref = " file_info" />
< appender-ref ref = " file_error" />
< appender-ref ref = " plumelog" />
</ root>
< logger name = " com.qxsk" level = " info" />
< logger name = " org.apache" level = " INFO" />
< logger name = " org.springframework" level = " info" />
</ configuration>
6.浏览器访问