Woj*_*tek 4 java logging java.util.logging
我有一些无法解释的行为java.util.logging
。让我们来看看这两个样本:
第一的:
boolean var = false;
log.log( Level.WARNING, "Cant {0}", new Object[] { var } );
Run Code Online (Sandbox Code Playgroud)
输出:
Cant false
Run Code Online (Sandbox Code Playgroud)
第二:
boolean var = false;
log.log( Level.WARNING, "Can't {0}", new Object[] { var } );
Run Code Online (Sandbox Code Playgroud)
输出:
不能{0}
为什么包含撇号 ( ' ) 会导致记录器不扩展令牌?
看来您使用的任何日志记录机制都是在MessageFormat
内部使用该类。如果是这样,那么您需要对撇号字符进行转义,因为它是一个单引号字符。单引号字符用于引用不打算解释的文本。
在字符串中,一对单引号可用于引用除单引号之外的任意字符。例如,模式字符串“'{0}'”代表字符串“{0}”,而不是 FormatElement。单引号本身必须由整个字符串中的双引号 ''表示。
(强调我的)
尝试
log.log( Level.WARNING, "Can''t {0}", new Object[] { var } );
Run Code Online (Sandbox Code Playgroud)
这段代码:
MessageFormat mf = new MessageFormat("Can''t {0}");
System.out.println(mf.format(new Object[] {false}));
Run Code Online (Sandbox Code Playgroud)
产生这个输出:
Can't false
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1525 次 |
最近记录: |