您的位置:首页 > 运维架构 > Apache

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

2016-07-29 14:45 573 查看
以下简单现实文件生成和用户数据的写入

(一)、编写工具类

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();
}
}

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐