例如,在logback的Syslogappender中:
String getPrefixPattern() {
return "%syslogStart{" + getFacility() + "}%nopex{}";
}
同样,PatternLayout 中的转换单词/字符(线程的 %t
)。
这些是什么?变量?如果是,是什么类型?
无论它们是什么,JVM 都会以某种方式将它们分别更改为线程标识符和与 syslog 协议(protocol)相关的信息。我想知道怎么办。
此外,我怎样才能知道 %syslogStart
被转换成什么消息?
最佳答案
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、 守护进程、AUTH、系统日志、LPR、新闻、UUCP、CRON、AUTHPRIV、FTP、NTP、审计、 警报、时钟、本地 0、本地 1、本地 2、本地 3、本地 4、本地 5、本地 6、 本地7。大小写并不重要。”
关于java - java中的%符号是什么以及它是如何工作的? (不是模数!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952589/