代码之家  ›  专栏  ›  技术社区  ›  xpagesbeast

在Domino Java代理中使用记录器

  •  1
  • xpagesbeast  · 技术社区  · 7 年前

    我想避免使用Java代理中的字符串缓冲区和Soal.Out.PrtLn。

    我想使用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.
    

    注意,当使用level.info时,domino平台在输出之前添加了“代理错误”

    然后我尝试使用.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不认为所有level.info都是错误的信息,我能做些什么呢?

    1 回复  |  直到 7 年前
        1
  •  2
  •   xpagesbeast    7 年前

    在服务器上编辑此文件后,我可以打印不同级别的日志记录:

    (服务器安装)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());
    

    现在,我可以在数据库或环境变量中设置调试标志,并根据需要指定详细的日志记录级别。

    例如,如果我想调试应用程序,我可以在数据库中设置一个由应用程序读取的值,该值确定处理程序将使用的日志记录级别。