org.apache.log4j.Logger实现用户数据收集(非系统日志收集)

以下简单现实文件生成和用户数据的写入

(一)、编写工具类

package com.web.untils;

import java.text.SimpleDateFormat;  
import java.util.Date;  

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


/**
 * 根据不同的日期类型,每天生成yyyyMMdd.log格式日志文件,例如/home/logs/20141111.log
 */
public class LoggerUtil {

public static Logger getLogger(Class clazz) {  
 
        Logger logger = Logger.getLogger(clazz); // 生成新的Logger  
        logger.removeAllAppenders(); // 清空Appender,特別是不想使用現存案例时一定要初始化  
        logger.setLevel(Level.INFO); // 设定Logger級別。  
        logger.setAdditivity(false); // 设定是否继承父Logger。默认为true,继承root输出;设定false后将不输出root。  
  
        FileAppender appender = new DailyRollingFileAppender(); // 生成新的Appender
        appender.setBufferedIO(true);
        appender.setBufferSize(8192);
        PatternLayout layout = new PatternLayout();  
        layout.setConversionPattern("%m%n"); // log的输出形式  
        appender.setLayout(layout);
        String fileName = DateUtils.getDateFormat("yyyyMMdd")+".log";
        //文件保存目录
        String filePath  = PropertiesUtil.getProperties("fileLocalPath")+fileName;
        appender.setFile(filePath); // log输出路径  
        appender.setEncoding("UTF-8"); // log的字符编码  
        appender.setAppend(true); // 日志合并方式: true:在已存在log文件后面追加 false:新log覆盖以前的log  
        appender.activateOptions(); // 适用当前配置  
        logger.addAppender(appender); // 将新的Appender加到Logger中  
        return logger;  
    }  
 
    public static String getTime(String format) {  
        SimpleDateFormat sdf = new SimpleDateFormat(format);  
        return sdf.format(new Date());  
    }  
  
}

(二)、数据采集入口调用

@ResponseBody
@RequestMapping("/getUserData")
public void getUserData(String json,HttpServletRequest request,HttpServletResponse response) {
Logger logger=LoggerUtil.getLogger(GatherController.class);
try{
JSONObject fromObject = JSONObject.fromObject(json);
logger.info(fromObject.toString());
}catch(Exception e){
e.printStackTrace();
}
}


(三)、最后采集到的数据如下:


你可能感兴趣的:(java开发技术)