前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >log4j统一记录短信操作日志(入库)

log4j统一记录短信操作日志(入库)

作者头像
有一只柴犬
发布2024-01-25 10:49:28
870
发布2024-01-25 10:49:28
举报
文章被收录于专栏:JAVA体系JAVA体系

1、log4j.properties配置:

代码语言:javascript
复制
#指定需要收集的短信操作工具类,同时log级别为warn
log4j.logger.com.xxx.util.CUSMSUtils=warn, sqlD
log4j.appender.sqlD=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.sqlD.driver=com.mysql.jdbc.Driver
#指定需要入库的数据库
log4j.appender.sqlD.URL=jdbc\:mysql\://127.0.0.1\:3306/mytest?characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull
log4j.appender.sqlD.user=root
log4j.appender.sqlD.password=root
#入库sql
log4j.appender.sqlD.sql=insert into t_cusms_logs (create_time,mobile, content, log, status) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%X{mobile}', '%X{content}', '%X{log}', '%X{status}')
log4j.appender.sqlD.layout=org.apache.log4j.PatternLayout

2、CUSMSUtils发送短信方法:

代码语言:javascript
复制
MDC.put("mobile", mobile);   //手机号
MDC.put("content", content);  //短信内容
MDC.put("log", result);  //短信回执
MDC.put("status", "success");  //状态
logger.warn("短信发送回执:" + result); 

这里MDC种的key需要与sql中的占位名称一致。

完成。

介绍一下MDC:

    MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。某些应用程序采用多线程的方式来处理多个用户的请求。在一个用户的使用过程中,可能有多个不同的线程来进行处理。典型的例子是 Web 应用服务器。当用户访问某个页面时,应用服务器可能会创建一个新的线程来处理该请求,也可能从线程池中复用已有的线程。在一个用户的会话存续期间,可能有多个线程处理过该用户的请求。这使得比较难以区分不同用户所对应的日志。当需要追踪某个用户在系统中的相关日志记录时,就会变得很麻烦。     MDC 可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,只需要从 MDC 中获取所需的信息即可。MDC 的内容则由程序在适当的时候保存进去。对于一个 Web 应用来说,通常是在请求被处理的最开始保存这些数据。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档