这可能是一个愚蠢的问题,但我有点迷失java Logger
private static Logger logger = Logger.getLogger("order.web.OrderManager");
logger.info("Removed order " + id + ".");
Run Code Online (Sandbox Code Playgroud)
我在哪里可以看到日志?此引用来自java.util.logging.Logger库:
在每次日志记录调用时,Logger最初会根据记录器的有效日志级别对请求级别(例如SEVERE或FINE)执行廉价检查.如果请求级别低于日志级别,则日志记录调用立即返回.
在通过此初始(廉价)测试后,Logger将分配一个LogRecord来描述日志消息.然后,它将调用过滤器(如果存在)以更详细地检查是否应该发布记录.如果通过它,则将LogRecord发布到其输出Handlers
这是否意味着如果我有3个request level日志:
logger.log(Level.FINE, "Something");
logger.log(Level.WARNING, "Something");
logger.log(Level.SEVERE, "Something");
Run Code Online (Sandbox Code Playgroud)
我log level是严重的,我可以看到所有三个日志,如果我log level是警告,那么我看不到严重日志,这是正确的吗?我该怎么设置log level?
我有一个使用外部库的java程序.主程序用于log4j记录其消息和库使用java.util.logging.
我的问题是来自外部库和主程序的日志消息在控制台中混合.
我想将来自外部库的所有日志消息重定向到文件.我试着用logging.properties文件做到这一点:
handlers= java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = foo.log
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
Run Code Online (Sandbox Code Playgroud)
该文件初始化为:
System.setProperty("java.util.logging.config.file", "logging.properties");
Run Code Online (Sandbox Code Playgroud)
不幸的是,来自外部库的日志消息不断出现在控制台中.我应该使用类似slf4j拦截日志消息的东西java.util.logging吗?
感谢您的时间.
我正在使用带有本机包装的 JavaFx。将系统控制台输出记录到文件的最佳方法是什么?是否可以使用 sl4j-simple?你能举个例子吗?