有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何设置JDBCDriverLogging的日志记录级别

我正在尝试更改日志记录级别,以停止显示数百万个:

<May 26, 2010 10:26:02 AM EDT> <Debug> <JDBCDriverLogging> <000000> <2336: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |                |> 

我已尝试将此添加到我的java行:

-Djava.util.logging.config.file=/foo/bar/logging.properties

这是我的日志。属性文件:

handlers = java.util.logging.ConsoleHandler
.level = OFF
java.util.logging.ConsoleHandler.level = INFO

不走运。我试过这个:

Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc");
Handler handler = new ConsoleHandler();
handler.setLevel(Level.INFO);
logger.addHandler(handler);
logger.setLevel(Level.INFO);
logger.setUseParentHandlers(false);

不走运。我到处搜索,所有的想法都围绕着这两个选项中的一个,所以我一定是做错了什么

我正在使用jtds-1.2.2。罐子

谢谢你的建议


共 (2) 个答案

  1. # 1 楼答案

    net.sourceforge.jtds.util.Logger.setLogWriter(new NullPrintWriter()) 
    

    禁用记录驱动程序。NullPrintWriter可以在ApacheCommons IO包中找到,也可以通过扩展PrintStream并将打印操作替换为无操作来为自己实现

  2. # 2 楼答案

    我怀疑你现在是否需要这个,但我来回答你的问题是想找到一种激活jTDS日志的方法,这与你需要的正好相反

    我能找到的使日志工作的唯一方法是硬编码一个记录器,如下面的问题:Log4J: How do I redirect an OutputStream or Writer to logger's writer(s)?,并将其传递给jTDS的Logger.setLogWriter()

        PrintWriter logger = new PrintWriter(
                new LogOutputStream(
                        LoggerFactory.getLogger(Logger.class),
                        Level.DEBUG));
        Logger.setLogWriter(logger);
    

    也许6年后,其他人会发现这很有用;)