ch.qos.logback.classic.encoder.PatternLayoutEncoder

ch.qos.logback.classic.PatternLayout
ch.qos.logback.core.pattern.PatternLayoutBase
 
PatternLayoutBase.class 代码片段,入口
public void start() {
if(pattern == null || pattern.length() == ) {
addError("Empty or null pattern.");
return;
}
try {
Parser<E> p = new Parser<E>(pattern);
if (getContext() != null) {
p.setContext(getContext());
}
Node t = p.parse();
this.head = p.compile(t, getEffectiveConverterMap());
if (postCompileProcessor != null) {
postCompileProcessor.process(head);
}
ConverterUtil.setContextForConverters(getContext(), head);
ConverterUtil.startConverters(this.head);
super.start();
} catch (ScanException sce) {
StatusManager sm = getContext().getStatusManager();
sm.add(new ErrorStatus("Failed to parse pattern \"" + getPattern()
+ "\".", this, sce));
}
}

<pattern> </pattern> 内容结构

... + Token.PERCENT + Token.FORMAT_MODIFIER + Token.SIMPLE_KEYWORD + Token.OPTION + ...

例如:
%-5level
%logger{36}

... 代表 任意多个Token.LITERAL 或者 自身

oken.PERCENT 是 %
Token.FORMAT_MODIFIER 必须是数字,正数代表当前位置(即文本左侧)填充空格,负数代表当前位置相反方向填充空格,数值代表“填充空格至N个字符”,字符串本身长度大于等于N时,不需要填充。

Token.SIMPLE_KEYWORD 是PatternLayout 中定义的字符(对应各自的Converter类)

Token.OPTION 是由第一个“{”开启,第一个“}”结束,例如:
%logger{36}} 中的第二个“}”视为 Token.LITERAL 普通文本
传递多个参数用英文“,”分割,例如:
{opt1,opt2}

Converter 详解

http://logback.qos.ch/manual/layouts.html#conversionWord

1. d/date

DateConverter.class

%date{}                                  yyyy-MM-dd HH:mm:ss,SSS

%date{ISO8601}                      yyyy-MM-dd HH:mm:ss,SSS

%date{SimpleDateFormat}         SimpleDateFormat

2. r/relative

3. level/le/p

级别名称 TRACE  DEBUG  INFO  WARN  ERROR

4. t/thread

线程名称

Thread.currentThread().getName();

5. lo/logger/c

loggerName

Logger org.slf4j.LoggerFactory.getLogger(Class clazz)
clazz的全限定名称
例如:cn.zno.SomeClazz

6. m/msg/message

FormattedMessage
void org.slf4j.Logger.trace(String format, Object... arguments)
由{} 开启参数,有Object[] 设置参数
例如:
        String s = "sdfsdf";
int i = 111;
double d = 22.0;
Date date = new Date();
logger.trace("It is trace{}&{}&{}&{}",s,i,d,date);

打印:

It is tracesdfsdf&&22.0&Wed Sep  :: CST  

7. C/class

logger 位于的类名

8. M/method

打印本次log的直接方法名

9. L/line

new Throwable().getStackTrace()[1].getLineNumber();

logger调用打印方法的位置(.java文件中)

10.F/file

该logger位于哪个.java文件

11. X/mdc

Mapped Diagnostic Contexts (MDC)

映射 诊断 上下文

12. 等等

PatternLayoutEncoder 输出格式的更多相关文章

  1. iOS中NSLog输出格式大全

    iOS开发中的输出格式大全: %@                   对象 %d, %i               整数%u                    无符整形%f           ...

  2. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  3. print输出格式总结

    妈的,今天又被printf坑了一回...看来需要一次性总结书所有结果,省的又出现这样那样的麻烦.. #include<stdio.h> #include<string.h> # ...

  4. C(C++)输入输出格式

    c&c++输入输出控制格式 许多情况下,都需要控制输出结果的表现形式.如输出宽度.输出精度.输出格式等.C++的iomanip.h中定义了许多控制符,这些控制符可以直接插入到流中,控制数据的输 ...

  5. <fmt:formatDate>标签的输出格式:

    <fmt:formatDate>标签的输出格式:  d   月中的某一天.一位数的日期没有前导零.      dd   月中的某一天.一位数的日期有一个前导零.      ddd   周中 ...

  6. C语言printf()输出格式大全

    1.转换说明符       %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99)       %c             字符       %d             有符号十 ...

  7. Printf()输出格式控制(转)

    int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...

  8. iOS开发中NSLog输出格式大全

    本文的内容是总结了一下iOS开发中NSLog输出格式大全,虽然比较基础,但有总结毕竟会各位正在学习iOS开发的朋友们一些小小的帮助. %@                   对象 %d, %i    ...

  9. Yii提供的Htmler助手checkboxList可自定义Checkbox输出格式

    foreach($catetags as $cate){ echo Html::checkboxList('category_id','',$cate,['item'=>'customCheck ...

随机推荐

  1. B2B,ERP,SCM

    B2B: B2B电子商务平台是指一个市场的领域的一种,是企业对企业之间的营销关系.电子商务是现代B2B marketing的一种具体主要的表现形式.网商通过它将企业内部网,通过B2B网站与客户紧密结合 ...

  2. 一些Java相关的

    都是从<Thinking in Java>英文第四版中摘抄的 _______________________________________________________________ ...

  3. day9-Memcached & Redis使用

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  4. Django 学习之---缓存系统

    一.浏览器缓存机制 Cache-control策略(重点关注) Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务 ...

  5. UNITY 带spriterender的对象导出为prefab时主贴图丢失的BUG

    从场景导出带有sprite的对象为prefab时贴图丢失的BUG.解决方案:对场景中每个sprite重新赋一下贴图,然后导出就好了,原因不明. 补充:这个有时候是因为贴图类型不是 2D AND UI ...

  6. 【原】Coursera—Andrew Ng机器学习—编程作业 Programming Exercise 4—反向传播神经网络

    课程笔记 Coursera—Andrew Ng机器学习—课程笔记 Lecture 9_Neural Networks learning 作业说明 Exercise 4,Week 5,实现反向传播 ba ...

  7. slf4j日志框架

  8. 40行代码爬取猫眼电影TOP100榜所有信息

    主要内容: 一.基础爬虫框架的三大模块 二.完整代码解析及效果展示 1️⃣  基础爬虫框架的三大模块 1.HTML下载器:利用requests模块下载HTML网页. 2.HTML解析器:利用re正则表 ...

  9. k8s secret

    https://kubernetes.io/docs/concepts/configuration/secret/ Secret是一个包含少量敏感数据的对象,例如密码,令牌或密钥. 否则,这些信息可能 ...

  10. java算法 第七届 蓝桥杯B组(题+答案) 9.取球博弈

    9.取球博弈  (程序设计) 两个人玩取球的游戏.一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目.如果无法继续取球,则游戏结束.此时,持有奇数个球的一方获胜.如果两人都是 ...