log4j

betterjonah 2004-07-12 12:52:27
我记得log4j可以动态的配置。
可是我修改了配置文件后,为何没见效。
我修改的是日志输出级别
...全文
145 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
betterjonah 2004-07-13
谢谢大家的热心回复:)
回复
betterjonah 2004-07-13
dropship(飞翔的年代)谢谢你的热心回复。
不过可能是我没表达清楚,你没明白我的意思。
Banned(Evil) ,谢谢你的回复,我试试看。

回复
Banned 2004-07-12
在代码中调用如下方法即可
PropertyConfigurator.configureAndWatch(configFile,delay)
回复
dropship 2004-07-12
这下明白了吧!
回复
dropship 2004-07-12
清楚了,请问你写日志用的什么语句?

如果一条log信息的级别,大于等于记录器的级别值,那么记录器就会记录它。如果你觉得难以理解,可参考下例。
// get a logger instance named "com.foo"
Logger logger = Logger.getLogger("com.foo");

// Now set its level. Normally you do not need to set the
// level of a logger programmatically. This is usually done
// in configuration files.
logger.setLevel(Level.INFO);

Logger barlogger = Logger.getLogger("com.foo.Bar");

// This request is enabled, because WARN >= INFO.
logger.warn("Low fuel level.");

// This request is disabled, because DEBUG < INFO.
logger.debug("Starting search for nearest gas station.");

// The logger instance barlogger, named "com.foo.Bar",
// will inherit its level from the logger named
// "com.foo" Thus, the following request is enabled
// because INFO >= INFO.
barlogger.info("Located nearest gas station.");

// This request is disabled, because DEBUG < INFO.
barlogger.debug("Exiting gas station search");

回复
betterjonah 2004-07-12
当把
log4j.rootLogger=debug, stdout, R
改为
log4j.rootLogger=error, stdout, R
后,日志的输出没有任何改变。
为debug级别的日志同样输出了。
现在清楚么?
谢谢。
回复
betterjonah 2004-07-12
log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
回复
manzhi 2004-07-12
level of a logger 是可以通过属性文件设置的,还是那句话,将你的配置文件贴出来看看吧
回复
betterjonah 2004-07-12
我看log4j的文档,log4j可以动态的配置。
按我的理解,那么日志的输出级别也可以动态的修改。
开始我使用的日志输出级别是debug,我在程序中有一个死循环,不停的输出级别为debug的日志。
我在程序的运行过程中,将日志输出级别修改为error,但是debug日志还是输出了。停止程序,重新启动后,debug日志不再输出。就是这样。表达还不清楚么?
你们试过动态的修改日志的输出级别么?
回复
eclipse0016 2004-07-12
log4j的配置好像只会被读取一次哦,最好重启一下程序吧。
回复
manzhi 2004-07-12
这样表达,人家怎么能帮你呢 出了什么错, 说明白些
回复
betterjonah 2004-07-12
配置文件位置正确:
理由,修改配置文件后,重新运行程序,能够按修改后的配置文件运行。
配置文件是log4j自带的例子,properties的。
调用就是按照log4j的例子完成初始化的阿。
回复
dropship 2004-07-12
贴出你的配置文件,和你的调用方式,你这样谁知道问题?
回复
blackrain06 2004-07-12
具体的贴出来看看
回复
manzhi 2004-07-12
你所配置的属性文件放在正确的类路径吗
回复
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2004-07-12 12:52
社区公告
暂无公告