Java util 日志记录使用以下输出行格式:
java.util.logging.SimpleFormatter.format = %4$s %2$s %n
这给出了以下输出,其中第一个 main 是
package
名称,而最后一个 main 是 method
名称:
INFO main.MySuperPuperClassName main
如何去掉这里的包名?这样生成的日志行将如下所示:
INFO MySuperPuperClassName main
这个想法是不在日志行中输出包名称。
您可以在此处找到正确创建日志字符串所需的所有文档:https://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html#format(java.util.日志记录.LogRecord)
在这里您可以获得有关logging.properties文件的详细信息: https://docs.geotools.org/latest/userguide/library/metadata/logging/java_logging.html
从您呈现的输出来看,您的日志配置可能会被忽略,这就是您看不到结果的原因。您在运行代码之前设置了属性配置吗? https://stackoverflow.com/a/54068185/420096
例如,这个java文件和这个配置在同一个文件夹中:
import java.util.logging.Logger;
public class FooBar {
private static final Logger LOG = Logger.getLogger("my");
public static void main(String ...args) {
LOG.info("I was there");
}
}
文件logging.properties:
handlers= java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s: %3$s %2$s %5$s %n
您可以使用此命令行测试日志记录:
java -Djava.util.logging.config.file=logging.properties FooBar.java
并期望这样的输出:
2024-01-07 08:35:07 INFORMAÇÕES: my FooBar main I was there
输出中的“my”是您用作记录器名称的任何内容。类简单名称,例如:
https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#getSimpleName