linux部署springboot项目彩色日志打印未做处理tail日志log.out文件
tail -f log.out
原色效果图
tail日志log.out文件
tail -f log.out | perl -pe's/(info)|(debug)|(warn)|(error)|(^[0-9-:.\s]{10,23})|((?<=[ognr]\s)[0-9]{1,5})|((?<=\[.{15}\]\s).{1,40}(?=\s(:\s)|\s))/\e[1;32m$1\e[0m\e[1;36m$2\e[0m\e[1;33m$3\e[0m\e[1;31m$4\e[0m\e[1;34m$5\e[0m\e[1;35m$6\e[0m\e[1;36m$7\e[0m/g'
彩色效果图
注意:
通过正则表达式和颜色来对应分配
springboot配置控制台彩色日志输出最新补充:
如果使用的是application.properties进行配置,则需要配置下面项目:
spring.output.ansi.enabled=always # 需要将其设置为always
spring默认使用logback来进行日志输出,同时,控制台不同参数输出为不同的颜色,看起来逼格很高。
但是,当我们使用自己默认的配置的时候,彩色消失了。我想,在源码中,肯定有默认的配置,所以就去源码中找了一圈,很快就找到了,这里和大家分享下。
默认的配置位置:(springboot 2.1.0 版本)
org.springframework.boot.logging.logback 包下 defaults.xml 文件中,配置了相关属性。 <included> <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{${log_dateformat_pattern:-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}}"/> <property name="file_log_pattern" value="${file_log_pattern:-%d{${log_dateformat_pattern:-yyyy-mm-dd hh:mm:ss.sss}} ${log_level_pattern:-%5p} ${pid:- } --- [%t] %-40.40logger{39} : %m%n${log_exception_conversion_word:-%wex}}"/> <logger name="org.apache.catalina.startup.digesterfactory" level="error"/> <logger name="org.apache.catalina.util.lifecyclebase" level="error"/> <logger name="org.apache.coyote.http11.http11nioprotocol" level="warn"/> <logger name="org.apache.sshd.common.util.securityutils" level="warn"/> <logger name="org.apache.tomcat.util.net.nioselectorpool" level="warn"/> <logger name="org.eclipse.jetty.util.component.abstractlifecycle" level="error"/> <logger name="org.hibernate.validator.internal.util.version" level="warn"/></included>
我们可以看到,console_log_pattern 参数就是默认的 输出格式配置。我们可以通过在application.properties文件中修改属性logging.pattern.console属性,来定制自己需要的彩色输出。
这里,分享一下我自己修改的日志输出格式:
logging.pattern.console=%clr(%d{yyyy-mm-dd hh:mm:ss.sss}){faint} %clr(%5p) %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n
去掉了 线程名 节点,调整了类名的长度限制。
如果希望使用自定义的logback.xml,则需要加上 相应的转换器类:
<substitutionproperty name="log.pattern" value="%clr(%d{yyyy-mm-dd hh:mm:ss.sss}){faint} %clr(%5p) %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n%wex"/> <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"/> <appender name="stdout" class="ch.qos.logback.core.consoleappender"> <encoder class="ch.qos.logback.classic.encoder.patternlayoutencoder"> <pattern>${log.pattern}</pattern> </encoder></appender>
效果展示:
以上就是linux部署springboot项目彩色日志打印的方法是什么的详细内容。