我正在使用Geotools (版本19.2)来获取一些特性。为了禁用Geotools日志记录(<严厉),我尝试了两种方法:
Logging.getLogger("org.geotools").setLevel(Level.SEVERE);
配置(logging.properties)如下所示:
# standard log level
.level = WARNING
handlers = java.util.logging.ConsoleHandler
## limit the messages that are printed on the console to >= WARNING!
java.util.logging.ConsoleHandler.level = WARNING
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.encoding = Cp850
# do not use logging files!
java.util.logging.FileHandler.level = OFF
## just output geotools logs with level SEVERE!
org.geotools.level = SEVERE然后,我使用以下代码加载配置:
LogManager.getLogManager().readConfiguration(MyMainClass.class.getClassLoader().getResourceAsStream("logging.properties"));使用这两种方法,如果我在Eclipse中运行程序,就可以获得没有日志记录输出。如果我以JAR-file的形式运行我的程序,我将得到以下不想要的日志输出
2018年11月8日9:48:13沃姆。org.geotools.jdbc.JDBCDataStore getAggregateExpression信息:访问者类org.geotools.feature.visitor.CountVisitor没有聚合属性。
信息日志来自private Expression getAggregateExpression(FeatureVisitor visitor) in JDBCDataStore (参见GitHub)
知道为什么日志配置不适用于生成的JAR吗?
发布于 2018-11-09 07:02:40
使用JConsole (跟随关于抑制第三方jar中java util日志记录的答复),我发现我的日志配置被关于抑制第三方jar中java util日志记录的答复安装的logging.properties文件覆盖了。
我试图在我的主要方法中更改日志配置,这是错误的。
在一个单独的类中初始化我的自定义logging.properties并指定所需的系统属性可以解决这个问题!
public class CustomLoggingPropertiesLoader {
//初始化全局LogManager.getLogManager().readConfiguration(CustomLoggingPropertiesLoader.class.getClassLoader().getResourceAsStream("logging.properties"));公共CustomLoggingPropertiesLoader() { try {e.printStackTrace}CustomLoggingPropertiesLoader(异常e) { e.printStackTrace();}
}爪哇-Djava.util.logging.config.class=de.example.logging.CustomLoggingPropertiesLoader -classpath myclasspath
https://stackoverflow.com/questions/53205139
复制相似问题