在 Domino Java 代理中使用记录器
Using Logger in Domino Java Agent
我想避免在 Java 代理中使用字符串缓冲区和 System.out.println。
我想使用java.util.Logger。
当我使用
登录时
logger.info("logger started")
Domino 服务器控制台中的输出
[0FDC:000D-1258] 06/07/2018 03:13:57 PM Agent Manager: Agent error: Jun 07, 2018 3:13:57 PM TransferDocsToServerNSF NotesMain INFO: logger started.
注意 Domino 平台在使用 Level.INFO
时在输出前添加了 "Agent error"
然后我尝试将 .logp 与 Level.FINE 一起使用,但没有显示任何输出。
logger.setLevel(Level.ALL); or logger.setLevel(Level.FINE);
logger.logp(Level.FINE,this.getClass().getSimpleName(),"main","logger started.");
输出:无输出。低于 Level.INFO 的任何内容都不会打印。
如何定位 Domino 日志以显示 Level.FINE?
而且,我可以为 Domino 的 INFO 做些什么来不将所有 Level.INFO 视为错误?
在服务器上编辑此文件后,我能够在不同级别打印日志记录:
(服务器安装)IBM/Domino/jvm/lib/logging.properties
# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= FINEST
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = FINEST
测试Java代码
logger = Logger.getLogger("com.xpagesbeast");
logger.setUseParentHandlers(false); //do not use the global logger (avoid two outputs per log)
如果自定义处理程序不存在,请创建一个自定义处理程序,观看我们的此处,您可以创建多个 JVM 将跟踪的处理程序。
if(logger.getHandlers().length == 0){
System.out.println("Adding a new handler");
consoleHandler = new ConsoleHandler();
logger.addHandler(consoleHandler);
}
logger.getHandlers()[0].setLevel(Level.INFO);
logger.severe("test severe logging " + logger.getName());
logger.warning("test warning logging " + logger.getName());
logger.info("test info logging " + logger.getName());
logger.finer("test finer logging " + logger.getName());
logger.finest("test finest logging " + logger.getName());
现在我可以在数据库或环境变量中设置调试标志,并根据需要指定详细的日志记录级别。
例如,如果我想调试应用程序,我可以在应用程序读取的数据库中设置一个值,以确定处理程序将使用的日志记录级别。
我想避免在 Java 代理中使用字符串缓冲区和 System.out.println。
我想使用java.util.Logger。
当我使用
登录时logger.info("logger started")
Domino 服务器控制台中的输出
[0FDC:000D-1258] 06/07/2018 03:13:57 PM Agent Manager: Agent error: Jun 07, 2018 3:13:57 PM TransferDocsToServerNSF NotesMain INFO: logger started.
注意 Domino 平台在使用 Level.INFO
时在输出前添加了 "Agent error"然后我尝试将 .logp 与 Level.FINE 一起使用,但没有显示任何输出。
logger.setLevel(Level.ALL); or logger.setLevel(Level.FINE);
logger.logp(Level.FINE,this.getClass().getSimpleName(),"main","logger started.");
输出:无输出。低于 Level.INFO 的任何内容都不会打印。
如何定位 Domino 日志以显示 Level.FINE?
而且,我可以为 Domino 的 INFO 做些什么来不将所有 Level.INFO 视为错误?
在服务器上编辑此文件后,我能够在不同级别打印日志记录:
(服务器安装)IBM/Domino/jvm/lib/logging.properties
# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= FINEST
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = FINEST
测试Java代码
logger = Logger.getLogger("com.xpagesbeast");
logger.setUseParentHandlers(false); //do not use the global logger (avoid two outputs per log)
如果自定义处理程序不存在,请创建一个自定义处理程序,观看我们的此处,您可以创建多个 JVM 将跟踪的处理程序。
if(logger.getHandlers().length == 0){
System.out.println("Adding a new handler");
consoleHandler = new ConsoleHandler();
logger.addHandler(consoleHandler);
}
logger.getHandlers()[0].setLevel(Level.INFO);
logger.severe("test severe logging " + logger.getName());
logger.warning("test warning logging " + logger.getName());
logger.info("test info logging " + logger.getName());
logger.finer("test finer logging " + logger.getName());
logger.finest("test finest logging " + logger.getName());
现在我可以在数据库或环境变量中设置调试标志,并根据需要指定详细的日志记录级别。
例如,如果我想调试应用程序,我可以在应用程序读取的数据库中设置一个值,以确定处理程序将使用的日志记录级别。