java - java中的%符号是什么以及它是如何工作的? (不是模数!)

标签 java jvm logback

例如,在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.htmlFacility 选项必须设置为以下字符串之一: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/

相关文章:

java - 与同步类相比,使用非同步类的性能如何提高?

java - Java 中的简单 TCP

java - 使用 JAXB 解码/编码 List<String>

java - 这是java内存泄漏吗

java - 如何将 logback 文件路径推广到 windows/linux 操作系统?

java - 使用 AffineTransform Java 旋转图像时出现偏移错误

java - 如何创建隔离的 JVM?

java - 内部类属性

emacs - 限制 ENSIME 服务器缓冲区的长度;该缓冲区的钩子(Hook)

java - 登录错误 : No attached appenders found