java.util.logging.SimpileFormatter 系统属性配置
java.util.logging.SimpileFormatter system property configuration
我最近在学习 Java 日志记录,在 javadoc 中,它说可以使用属性 "java.util.logging.SimpleFormatter.format".
配置 SimpleFormatter
在下面的代码中,我尝试使用 System.setProperty() "set the format" 两次,但在第二次尝试中似乎不起作用,下面代码中的 "formatterB" 仍然会使用 "formatterA".
中定义的格式
这是什么原因,谢谢。
public class Test {
public static void main(String[] args) {
try {
Logger loggerA = Logger.getLogger("A");
System.setProperty("java.util.logging.SimpleFormatter.format", "A: %1$tc %2$s%n%4$s: %5$s%6$s%n"); // first attempt
Handler handlerA = new FileHandler("A.log", 0, 1, true);
SimpleFormatter formatterA = new SimpleFormatter();
handlerA.setFormatter(formatterA);
loggerA.addHandler(handlerA);
loggerA.info("Logger A info message");
Logger loggerB = Logger.getLogger("B");
System.setProperty("java.util.logging.SimpleFormatter.format", "B: %1$tc %2$s%n%4$s: %5$s%6$s%n"); // second attempt
Handler handlerB = new FileHandler("B.log", 0, 1, true);
SimpleFormatter formatterB = new SimpleFormatter();
handlerB.setFormatter(formatterB);
loggerB.addHandler(handlerB);
loggerB.info("Logger B info message");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
在 class 加载时存储一次的 SimpleFormatter stores the format in a static field。该格式用于 SimpleFormatter class.
的所有实例
您必须推出自己的格式化程序 class 或 classes 才能支持多种格式。
我最近在学习 Java 日志记录,在 javadoc 中,它说可以使用属性 "java.util.logging.SimpleFormatter.format".
配置 SimpleFormatter在下面的代码中,我尝试使用 System.setProperty() "set the format" 两次,但在第二次尝试中似乎不起作用,下面代码中的 "formatterB" 仍然会使用 "formatterA".
中定义的格式这是什么原因,谢谢。
public class Test {
public static void main(String[] args) {
try {
Logger loggerA = Logger.getLogger("A");
System.setProperty("java.util.logging.SimpleFormatter.format", "A: %1$tc %2$s%n%4$s: %5$s%6$s%n"); // first attempt
Handler handlerA = new FileHandler("A.log", 0, 1, true);
SimpleFormatter formatterA = new SimpleFormatter();
handlerA.setFormatter(formatterA);
loggerA.addHandler(handlerA);
loggerA.info("Logger A info message");
Logger loggerB = Logger.getLogger("B");
System.setProperty("java.util.logging.SimpleFormatter.format", "B: %1$tc %2$s%n%4$s: %5$s%6$s%n"); // second attempt
Handler handlerB = new FileHandler("B.log", 0, 1, true);
SimpleFormatter formatterB = new SimpleFormatter();
handlerB.setFormatter(formatterB);
loggerB.addHandler(handlerB);
loggerB.info("Logger B info message");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
在 class 加载时存储一次的 SimpleFormatter stores the format in a static field。该格式用于 SimpleFormatter class.
的所有实例您必须推出自己的格式化程序 class 或 classes 才能支持多种格式。