阅读微信支付demo收获

时间:2022-01-02 07:45:44
 
 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;第二类,输出类日志,防止如果数据库异常了,有据可查;

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

以上是阅读代码之后的一点想法,我会抽个时间整理下实现方案,把它应用到工作当中,解放自己,提高效率。