【发布时间】:2011-02-06 07:02:35
【问题描述】:
我们正在使用 spymemcached memcached 客户端,但我们没有发现如何禁用日志记录系统。
我们如何在运行时将当前的日志系统更改为 log4j 或 sl4j 之类的系统?
注意:我们可以传递一些 VM 参数,但问题是:我们无法更改服务器配置。是否可以在运行时传递这些 VM 参数?如果可能,我们怎么做?
【问题讨论】:
标签: java logging memcached spymemcached
我们正在使用 spymemcached memcached 客户端,但我们没有发现如何禁用日志记录系统。
我们如何在运行时将当前的日志系统更改为 log4j 或 sl4j 之类的系统?
注意:我们可以传递一些 VM 参数,但问题是:我们无法更改服务器配置。是否可以在运行时传递这些 VM 参数?如果可能,我们怎么做?
【问题讨论】:
标签: java logging memcached spymemcached
在创建 MemcachedClient 对象之前,我通过执行此操作停止了过多的 Tomcat 日志记录到 catalina.out:
System.setProperty("net.spy.log.LoggerImpl",
"net.spy.memcached.compat.log.SunLogger");
Logger.getLogger("net.spy.memcached").setLevel(Level.WARNING);
【讨论】:
MemcachedClient对象之前将日志级别设置为Level.OFF。
我知道这是一个老问题,这个解决方案在运行时不起作用,但我遇到了类似的问题,只发现了这个问题。您可以通过 tomcat 配置文件 here 找到一种设置 spymemcached 日志记录级别的方法。
重要部分:
如何让 spymemcached 更安静的简短总结:
将以下内容添加到$CATALINA_HOME/bin/catalina.sh:
CATALINA_OPTS="-Dnet.spy.log.LoggerImpl=net.spy.memcached.compat.log.SunLogger"
将此添加到$CATALINA_HOME/conf/logging.properties:
(可以使用 SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST 或 ALL 设置处理程序的日志级别阈值)
net.spy.memcached.level = WARNING
仅使 MemcachedConnection 不那么冗长:
net.spy.memcached.MemcachedConnection.level = WARNING
【讨论】:
setenv.sh:L4J_OPTS="-Dnet.spy.log.LoggerImpl=net.spy.memcached.compat.log.Log4JLogger" JVM_OPTS="" CATALINA_OPTS="${JVM_OPTS} ${L4J_OPTS}"