MQLogUtil.kt 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package com.gxzc.zen.logging.util
  2. import com.gxzc.zen.common.util.PlatformUtil
  3. import com.gxzc.zen.logging.model.LogAuth
  4. import com.gxzc.zen.logging.model.LogBiz
  5. import com.gxzc.zen.logging.model.LogDB
  6. import com.gxzc.zen.logging.model.LogRequest
  7. import com.gxzc.zen.msg.mq.MQProducerUtil
  8. import com.gxzc.zen.msg.mq.constants.MQConstants
  9. import com.gxzc.zen.umps.util.SSOUtil
  10. import com.maihaoche.starter.mq.base.MessageBuilder
  11. import org.apache.rocketmq.client.producer.SendCallback
  12. import org.apache.rocketmq.client.producer.SendResult
  13. import org.slf4j.LoggerFactory
  14. import java.util.*
  15. /**
  16. * 基于消息队列MQ的日志工具类
  17. * @author NorthLan
  18. * @date 2018/8/23
  19. * @url https://noahlan.com
  20. */
  21. object MQLogUtil {
  22. private val logger = LoggerFactory.getLogger(MQLogUtil::class.java)
  23. private val mqProducer = MQProducerUtil.producer!!
  24. /**
  25. * 发送登陆日志消息
  26. */
  27. fun logAuth(logAuth: LogAuth) {
  28. mqProducer.asyncSend(MessageBuilder.of(logAuth).topic(MQConstants.TOPIC_LOGS).tag(MQConstants.TAGS_LOGS_AUTH).build(),
  29. object : SendCallback {
  30. override fun onException(e: Throwable) {
  31. logger.error("Send logAuth error, cause ", e)
  32. }
  33. override fun onSuccess(sendResult: SendResult) {
  34. logger.debug("Send logAuth success! {0}", sendResult.sendStatus)
  35. }
  36. })
  37. }
  38. /**
  39. * 发送请求日志消息
  40. */
  41. fun logRequest(logRequest: LogRequest) {
  42. logRequest.apply {
  43. this.platformId = PlatformUtil.getPlatformId()
  44. this.operatorAccount = SSOUtil.getCurAccount()
  45. this.operatorName = SSOUtil.getCurUserName()
  46. }
  47. mqProducer.asyncSend(MessageBuilder.of(logRequest).topic(MQConstants.TOPIC_LOGS).tag(MQConstants.TAGS_LOGS_REQUEST).build(),
  48. object : SendCallback {
  49. override fun onException(e: Throwable) {
  50. logger.error("Send logRequest error, cause ", e)
  51. }
  52. override fun onSuccess(sendResult: SendResult) {
  53. logger.debug("Send logRequest success! " + sendResult.sendStatus)
  54. }
  55. })
  56. }
  57. /**
  58. * 发送DB日志消息
  59. */
  60. fun logDB(type: Int, sql: String?, tableId: String?, tableName: String?, remark: String?, startTime: Date, endTime: Date = Date()) {
  61. val logDB = LogDB().apply {
  62. this.platformId = PlatformUtil.getPlatformId()
  63. this.operatorStartTime = startTime
  64. this.operatorEndTime = endTime
  65. this.operatorAccount = SSOUtil.getCurAccount()
  66. this.operatorName = SSOUtil.getCurUserName()
  67. this.type = type
  68. this.sql = sql
  69. this.tableId = tableId
  70. this.tableName = tableName
  71. this.remark = remark
  72. }
  73. mqProducer.asyncSend(MessageBuilder.of(logDB).topic(MQConstants.TOPIC_LOGS).tag(MQConstants.TAGS_LOGS_DB).build(),
  74. object : SendCallback {
  75. override fun onException(e: Throwable) {
  76. logger.error("Send logDB error, cause ", e)
  77. }
  78. override fun onSuccess(sendResult: SendResult) {
  79. logger.debug("Send logDB success! {0}", sendResult.sendStatus)
  80. }
  81. })
  82. }
  83. /**
  84. * 发送业务日志消息
  85. */
  86. fun logBiz(bizCode: String, bizContent: String, remark: String?, startTime: Date, endTime: Date = Date()) {
  87. MQLogUtil.logBizInner(LogBiz().apply {
  88. this.bizCode = bizCode
  89. this.bizContent = bizContent
  90. this.platformId = PlatformUtil.getPlatformId()
  91. this.operatorAccount = SSOUtil.getCurAccount()
  92. this.operatorName = SSOUtil.getCurUserName()
  93. this.operatorStartTime = startTime
  94. this.operatorEndTime = endTime
  95. this.remark = remark
  96. })
  97. }
  98. private fun logBizInner(logBiz: LogBiz) {
  99. mqProducer.asyncSend(MessageBuilder.of(logBiz).topic(MQConstants.TOPIC_LOGS).tag(MQConstants.TAGS_LOGS_BIZ).build(),
  100. object : SendCallback {
  101. override fun onException(e: Throwable) {
  102. logger.error("Send logBiz error, cause ", e)
  103. }
  104. override fun onSuccess(sendResult: SendResult) {
  105. logger.debug("Send logBiz success! {0}", sendResult.sendStatus)
  106. }
  107. })
  108. }
  109. }