开发者

logback日志输出格式设置方式

目录
  • 部分标签解释
  • 内置转换器
  • 部分特殊字符串解释
  • 更多内置特殊字符
  • 如何自定义输出样式
    • 字符颜色定义
    • 内置的一些样式
  • 代码示例
    • 使用内置模板
    • 使用自定义模板
  • 总结

    部分标签解释

    withJansi: 是否配合jansi使用

    filter: 日志过滤器

    layout: 布局, 配合内置模板使用

    pattern: 日志模板, 有内置的日志模板可以直接使用, 例如: ${FILE_LOG_PATTERN}

    encoder: 编码器, 支付转码

    charset: 支付编码, 一般为utf-8

    内置转换器

    可以直接通过调用内置的转换器将日志取出来, 打印出来

    部分特殊字符串解释

    %d: 表示日期

    %thread: 表示线程名

    %-5level: 级别从左显示5个字符宽度

    %msg: 日志消息

    %n: 是换行符

    更多内置特殊字符

    defaultConverterMap.put("d", DateConverter.class.getName());
    defaultConverterMap.put("date", DateConverter.class.getName());
    defaultConverterMap.put("r", RelativeTimeConverter.class.getName());
    defaultConverterMap.put("relative", RelativeTimeConver编程ter.class.getName());
    defaultConverterMap.put("level", LevelConverter.class.getName());
    defaultConverterMap.put("le", LevelConverter.class.getName());
    defaultConverterMap.put("p", LevelConverter.class.getName());
    defaultConverterMap.put("t", ThreadConverter.class.getName());
    defaultConverterMap.put("thread", ThreadConverter.class.getName());
    defaultConverterMap.put("lo", LoggerConverter.class.getName());
    defaultConverterMap.put("logger", LoggerConverter.class.getName());
    defaultConverterMap.put("c", LoggerConverter.class.getName());
    defaultConverterMap.put("m", MessageConverter.class.getName());
    defaultConverterMap.put("msg", MessageConverter.class.getName());
    defaultConverterMap.put("message", MessageCohttp://www.devze.comnverter.class.getName());
    defaultConverterMap.put("C", ClassOfCallerConverter.class.getName());
    defaultConverterMap.put("class", ClassOfCallerConverter.class.getName());
    defaultConverterMap.put("M", MethodOfCallerConverter.class.getName());
    defaultConverterMap.put("method", MethodOfCallerConverter.class.getName());
    defaultConverterMap.put("L", LineOfCallerConverter.class.getName());
    defaultConverterMap.put("line", LineOfCallerConverter.class.getName());
    defaultConverterMap.put("F", FileOfCallerConverter.class.getName());
    defaultConverterMap.put("file", FileOfCallerConverter.class.getName());
    defaultConverterMap.put("X", MDCConverter.class.getName());
    defaultConverterMap.put("mdc", MDCConverter.class.getName());
    defaultConverterMap.put("ex", ThrowableProxyConverter.class.getName());
    defaultConverterMap.put("exception", ThrowableProxyConverter.class.getName());
    defaultConverterMap.put("rEx", RootCauseFirstThrowableProxyConverter.class.getName());
    defaultConverterMap.put("rootException", RootCauseFirstThrowableProxyConverter.class.getName());
    defaultConverterMap.put("throwable", ThrowableProxyConverter.class.getName());
    defaultConverterMap.put("xEx", ExtendedThro编程客栈wableProxyConverter.class.getName());
    defaultConverterMap.put("xException", ExtendedThrowableProxyConverter.class.getName());
    defaultConverterMap.put("xThrowable", ExtendedThrowableProxyConverter.class.getName());
    defaultConverterMap.put("nopex", NopThrowableInformationConverter.class.getName());
    def编程客栈aultConverterMap.put("nopexception", NopThrowableInformationConverter.class.getName());
    defaultConverterMap.put("cn", ContextNameConverter.class.getName());
    defaultConverterMap.put("contextName", ContextNameConverter.class.getName());
    defaultConverterMap.put("caller", CallerDataConverter.class.getName());
    defaultConverterMap.put("marker", MarkerConverter.class.getName());
    defaultConverterMap.put("property", PropertyConv开发者_Js入门erter.class.getName());
    defaultConverterMap.put("n", LineSeparatorConverter.class.getName());
    
    

    如何自定义输出样式

    字符颜色定义

    使用%加上颜色代号, 然后内容放在后面的括号()里面

    例如:

    • %white(这里放输出内容)
    • 配合特殊字符串, 可以输入时间, 线程名等

    内置的一些样式

    logback日志输出格式设置方式

    代码示例

    使用内置模板

     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <filter class="com.wang.cloud.store.common.LogFilter"/>
         <layout class="ch.qos.logback.classic.PatternLayout">
             <pattern>${FILE_LOG_PATTERN}</pattern>
         </layout>
     </appender>

    使用自定义模板

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <filter class="com.wang.cloud.store.common.LogFilter"/>
         <withJansi>false</withJansi>
         <encoder>
             <pattern>%white(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%lsn) %green([%thread]) %highlight(%-5level) php%boldMagenta(%logger{10}) - %cyan(%msg%n)</pattern>
             <charset>utf8</charset>
         </encoder>
     </appender>
    

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜