http://blog.csdn.net/inrtyx/article/details/17791627#userconsent#

import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;


/**
 * @projectName wififree
 * @author tangwzh
 * @function 按照用户ID来生成log,可以根据每个用户ID来动态生成logger。
 * @createTime 2013-12-23 下午05:38:42
 */
public class LoggerUtil {
   
    public static Logger getLoggerByName(String name) {
    
        // 生成新的Logger,如果已经有了一个Logger实例返回现有的
        Logger logger = Logger.getLogger(name);
        
        // 清空Appender。特別是不想使用現存实例時一定要初期化
        logger.removeAllAppenders();
        
        // 设定Logger級別。
        Level level = Level.DEBUG;
        String levels = Constants.LOG4J_LEVEL;
        if("info".equals(levels)){
        level = Level.INFO;
        }else if("error".equals(levels)){
        level = Level.ERROR;
        }
        logger.setLevel(level);
        
        // 设定是否继承父Logger。默认为true。继承root輸出。设定false后將不输出root。
        if("true".equals(Constants.LOG4J_IS_ADDITIVITY)){
        logger.setAdditivity(true);
        }else{
        logger.setAdditivity(false);
        }
        
        // 生成新的Appender
        FileAppender appender = new DailyRollingFileAppender();
        PatternLayout layout = new PatternLayout();
        // log的输出形式
        String conversionPattern = Constants.LOG4J_CONVERSION_PATTERN;
        layout.setConversionPattern(conversionPattern);
        appender.setLayout(layout);
        
        // log输出路径
        appender.setFile(Constants.LOG4J_FILE_PATH + name + ".log");
        
        // log的编码
        appender.setEncoding("UTF-8");
        
        // true:在已存在log文件后面追加 。false:新log覆盖以前的log
        if("true".equals(Constants.LOG4J_IS_APPEND)){
        appender.setAppend(true);
        }else{
        appender.setAppend(false);
        }
        
        // 适用当前配置
        appender.activateOptions();
        
        // 将新的Appender加到Logger中
        logger.addAppender(appender);
        
        return logger;
    }
    
    

}