Java Annotation手册 JBPM的分配任务的模式:推模式和拉模式
动态改变log4j的运行级别
2009-02-03 10:18:50| 分类: JavaServer Page |字号 订阅
做一个产品或者项目,在测试时一般要打印详细的log,发布以后,因为打印有效率问题,所以通常将log4j级别设置为最高,以提高效率,一旦客户那里出了问题,要查看详细的日志信息才能确定,因此打印日志就是很重要的事情,但是让客户手工修改log4j配置文件,不是很好的事情。
修改log4j级别
public class Log4jConfig {
public void enableInfo(String target){
LogManager.getLogger(target).setLevel(Level.INFO);
}
public void enableWarn(String target){
LogManager.getLogger(target).setLevel(Level.WARN);
}
public void enableError(String target){
LogManager.getLogger(target).setLevel(Level.ERROR) ;
}
public void enableDebug(String target){
LogManager.getLogger(target).setLevel(Level.DEBUG) ;
}
}
写个jsp可以很简单的做到,合理使用jstl
<%@ page import="org.apache.log4j.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=GBK" language="java" %>
Log4J级别控制
<% String logName = request.getParameter("log");
if (null != logName) {
Logger log = ("".equals(logName) ?
Logger.getRootLogger() : Logger.getLogger(logName));
log.setLevel(Level.toLevel(request.getParameter("level"), Level.DEBUG));
}
%>
Show 所有已知 loggers
如果使用spring 2.0和jmx会很简单 [servletname]-servlet.xml配置
class="org.springframework.jmx.export.MBeanExporter"> value-ref="/hello.htm" />
spring加入另外的两个配置
写入
public class Log4JManager {
public void setLogger(String packageName, String level) {
LogManager.getLogger(packageName).setLevel(Level.toLevel(level));
}
}
可以用JConsole 进行控制。
典型的log4j配置文件
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=../../MgrWeb/log/mgrweb.log
log4j.appender.logfile.MaxFileSize=1024KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=20
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c\:%t\:%l] - %m%n
log4j.logger.org.hibernate.SQL=DEBUG
http://cancait.blog.163.com/blog/static/21335744200913101850280/