java中的百分号是什么?它是如何工作的? (不是模数!)

时间:2016-03-12 01:19:42

标签: java jvm logback

例如,在logback的Syslogappender中:

String getPrefixPattern() {
          return "%syslogStart{" + getFacility() + "}%nopex{}";
}

同样转换PatternLayout中的单词/字符(线程为%t)。

这些是什么?变量?如果是,那是什么类型?

无论它们是什么,JVM分别将它们分别变为线程标识符和与syslog协议相关的信息。我想知道怎么做。

此外,我如何找出转换为%syslogStart的消息?

1 个答案:

答案 0 :(得分:1)

https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/EnhancedPatternLayout.html

“每个转换说明符都以百分号(%)开头,后跟可选的格式修饰符和转换字符....”

所以%syslogStart {facility string}似乎确定了这个日志的编写方式,尽管这与Java中的Patternlayout类直接相关。这不是JVM对%做任何事情,而是它是一个标识符,似乎是由其他一些进程处理的。

http://logback.qos.ch/xref/ch/qos/logback/core/net/SyslogAppenderBase.html  “ Facility 选项必须设置字符串KERN,USER,MAIL之一, DAEMON,AUTH,SYSLOG,LPR,NEWS,UUCP,CRON,AUTHPRIV,FTP,NTP,AUDIT, ALERT,CLOCK,LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,LOCAL6, LOCAL7。案件并不重要。“