找到合适的方案记录服务端日志

  做过服务端开发的同学都清楚日志是多么的重要,你要分析应用当天的 PV/UV,你需要对日志进行统计分析; 你需要排查程序 BUG, 你需要寻找日志中的异常信息等等, 所以, 建立一套合适的日志体系是非常有必要的.
  
  日志体系一般都会遵循这么几个原则 :

  • 根据应用的需要记录对应的信息

  • 用于后期离线统计的日志信息与记录程序运行问题的日志分开存放

  • 选择合适的日志结构和日志记录工具

本文介绍的日志记录环境 :

  • Spring/Rose Web 框架

  • SLF4J 日志类

  • JSON格式的日志

      后端开发的时候往往在系统中都存在不只一套日志体系,这篇文章介绍的日志方案用于后期离线统计分析, 对于其他不同的情况需要根据服务的需求而定.
      Json格式的信息易于存储和分析,对于规模不是很大的应用服务而言,使用Json格式用于日志记录是个非常不错的选择,由于日志一般都是按行存储,后期根据需要利用普通的Java程序或者Hadoop MapReduce 工具处理都特别的方便;而且Json格式其内部存储类似于map结构,以Key/Value的形式表达信息,基本能够满足实际的需求.

1. 日志示例

  本文介绍的日志记录方法存储的日志信息就类似与下面这样 :

{
  "Url":"http://localhost:8081/RoseStudy/hello/showHowToRecordLog","Uri":"/RoseStudy/hello/showHowToRecordLog","RemoteIp":"127.0.0.1","HostIp":"127.0.0.1","ActionName":"showHowToRecordLog","Time":1452233120220,"LogSource":1,"JsonResult":{
  "errorCode":0,"reason":null,"result":"test show how to record log success...","status":"success"}}

  可以看到,一行日志包含8个信息(只是测试使用,实际应用中需要根据自己的需求加入不同的类别信息), 分别记录着我们以后统计需要用到的信息.
  那么,我们首先需要定义的就是这8个类型信息的常量字符串,以方便后期使用 :

/**
 * 日志常量
 * Created by zhanghu on 12/24/15.
 */
public class Constants_ {
   

    /**
     *  日志中包含的属性字段
     * */
    public static final String Url = "Url";
    public static final String Uri = "Uri";
    public static final String RemoteIp = "RemoteIp";
    public static final String HostIp = "HostIp";
    public static final String ActionName = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值