我正在尝试更改日志记录级别以停止显示数百万条:
<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
将此作为我的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.jar。
感谢您的任何建议。
答案 0 :(得分:1)
net.sourceforge.jtds.util.Logger.setLogWriter(new NullPrintWriter())
禁用日志记录驱动程序。 NullPrintWriter可以在Apache Commons IO包中找到,也可以通过扩展PrintStream并替换没有操作的print操作来实现。
答案 1 :(得分:1)
我怀疑你现在需要这个,但是我想到了一个问题,试图找到一种激活jTDS记录的方法,与你需要的相反。
我能找到让日志工作正常工作的唯一方法是对此问题中的Logger进行硬编码: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年后,其他人会觉得这很有用;)