zoukankan      html  css  js  c++  java
  • 阅读微信支付demo收获

     
     1,公司现有系统有很多,存放重要接口的日志分布在不同的库,每个系统都有单独的日志采集表,日志采集模块;
            ????
             这些日志可以统一放到一个地方,通过一个组件提供出去,对应的就是一个maven的jar组件,如果有新的系统需要开发,可以复用这一块,定义好文档,统一按照这个上报数据到统一的地方,方便分析问题,解决问题;

    主要可以设计出5张表:

    系统信息表  Dict_System
    id     systemName   systemDesc  SystemAdmin  AddTime
    日志类型表  Dict_Log
    id      logName     systemID    AddTime
    日志详细表  Log_Detail
    id     url   logTypeID    interURL  params     paramsKey  responseStr   responseKey  costTime   ip  Addtime
    日志错误表(业务)   Log_Err
    id    detailID  ErrMsg  ErrKey    AddTime

    日志异常表: Log_Exception
    id  systemID  excetionTitle  exceptionDetail  serverIP  AddTime

    然后,可以基于这几个数据表,编写一个报警的接口,检测上报的数据,主动发现系统问题,更好的做好系统,节省解决bug的时间,更好的专注于技术。

    2,日志的上报方式可以分成两种,异步的上报,同步的上报,根据系统的特点,来进行配置;

    关键代码:
    public void run(){
    r = new ReportRunable(rs);
    t = new Thread(r);
    t.setDaemon(true); //后台线程
    t.start();
    }


    3, 对于日志,存放数据库确实方便分析问题,解决问题,但是万一跟数据库断开了连接,日志上报肯定会中断,这里可以定义一个规则,统一的放到服务器的某一个目 录,主要分成两类日志文件;第一,异常类日志,方便检测服务器的bug;第二类,输出类日志,防止如果数据库异常了,有据可查;

    在日志上报的程序中,可以定期的抓取异常类的日志文件,把异常信息插入到一张数据库表中,进行分析,定期的提高系统的稳定性。



    以上是阅读代码之后的一点想法,我会抽个时间整理下实现方案,把它应用到工作当中,解放自己,提高效率。
  • 相关阅读:
    穷举 迭代 while
    for 循环
    switch case
    if else 语句
    数据类型
    语句的输入、输出
    控件——DataGridview
    mysql-bin.000001文件的来源及处理方法
    /var/log目录下的20个Linux日志文件功能详解
    CountDownLatch
  • 原文地址:https://www.cnblogs.com/snidget/p/5294662.html
Copyright © 2011-2022 走看看