tomcat 控制台输出内容控制

import  java.util.Hashtable;

import  javax.servlet.ServletException;
import  javax.servlet.http.HttpServlet;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;
import  org.apache.log4j.BasicConfigurator;
import  org.apache.log4j.ConsoleAppender;
import  org.apache.log4j.Level;
import  org.apache.log4j.LogManager;
import  org.apache.log4j.Logger;
import  org.apache.log4j.PatternLayout;
import  org.springframework.util.StringUtils;

public   class  LogTest  extends  HttpServlet  {
    
protected final Log log = LogFactory.getLog(getClass());
    
public static final String ROOT_LOGGER = "root.logger";
    
public static final String BPM2_OPERATIONLOGGER = "bpm2.operation.logger";
    
public static final String LEVEL = ".level";
    
public static final String CONSOLE_ENABLLED = ".console.enabled";
    
    
private static Hashtable log4jProperty = new Hashtable();
    
static{
        
//取得默认值
        
//log4jProperty.put(key, value);
    }

    
    
public void init() throws ServletException {
        log.info(
"Log4JInitializer starting ...");
        loadLog4jParameter();
        initLog4J();
        
//initLoggerLevel();
        log.info("Log4JInitializer finished!");
    }

    
    
/**
     * 参数准备 
     
*/

    
private void loadLog4jParameter() {
        
//从数据库或其它地方取得的值
        
//log4jProperty.put(key, value);
    }

    
/**
     * Init the log4j using the parameters. <br>
     * 
     * 
@throws Exception
     
*/

    
private void initLog4J() {
        
try {
            BasicConfigurator.configure();

            Logger rootLogger 
= LogManager.getRootLogger();
            rootLogger.removeAllAppenders();
            initLog4JLogger(rootLogger, ROOT_LOGGER);
            Logger accessLogger 
= LogManager.getLogger(AccessLog.class);
            accessLogger.setAdditivity(
false);
            initLog4JLogger(accessLogger, BPM2_OPERATIONLOGGER);

        }
 catch (Exception e) {
            e.printStackTrace();
        }

    }

    
/**
     * 各种LOG设定
     * 
@param logger
     * 
@param prefix
     * 
@throws Exception
     
*/

    
private void initLog4JLogger(Logger logger, String prefix) throws Exception {
        
// Parse and set the level to logger
        if (isParamNotNull(prefix + LEVEL)) {
            logger.setLevel(Level.toLevel(getStrParam(prefix 
+ LEVEL)));
        }

        
// Parse and set the console appender
        if (isParamEqual(prefix + CONSOLE_ENABLLED, "true")) {
            ConsoleAppender consoleAppender 
= new ConsoleAppender();
            PatternLayout patternLayout 
= new PatternLayout(
                    
"%-4r [%t] %-5p %c %x - %m%n");
            consoleAppender.setLayout(patternLayout);
            logger.addAppender(consoleAppender);
            patternLayout.activateOptions();
            consoleAppender.activateOptions();
        }

    }

    
private boolean isParamNotNull(String key) {
        String result 
= (String) log4jProperty.get(key);
        
return StringUtils.hasText(result);
    }

    
    
private String getStrParam(String key) {
        String result 
= (String) log4jProperty.get(key);
        
if (!StringUtils.hasText(result)) {
            
return "";
        }

        
return result;
    }

    
private boolean isParamEqual(String key, String value) {
        String result 
= (String) log4jProperty.get(key);
        
if (!StringUtils.hasText(result)) {
            
return false;
        }

        
return result.equals(value);
    }

}

 然后在WEB.XML文件中增加如下内容

 <servlet>
  <!-- Log Log4JInitializer -->
  <servlet-name>log4j-init</servlet-name>
  <servlet-class>jp.co.softbrain.bpm2.core.log.Log4JInitializer</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值