`
twtjcmpl
  • 浏览: 1762 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

日志保存及自定义查询需求,希望大家提供建议

阅读更多


以前一直是码家,只会编码,这是第一次做设计。想问问大家伙的意见。
项目介绍:
      项目为中间交易前置系统,主要是对扣款、对账及其它些辅助功能;XML报文为交互载体,通过JMS、EJB及MQ为通信技术;。

问题描述:
      系统为纯后台操作,基本无界面,异常信息不会直接反映到前台;有时会出现扣款扣重现象。
      由于涉及金钱,对交易的状态要求较高,但当出现异常无法快速定位原因及交易的状态。
      只能让运维人员查找log日志,效率及其低下。而且涉及多个部门系统,沟通存在障碍。

需求:
    1、现有需求要求通过系统界面能够查找异常堆栈信息、错误原因及其相关建议解决方案。
    2、能查询到每笔交易当前各阶段的状态,以及最终状态,若失败说明错误原因。
    3、提供自定义查询,方便系统对数据的查询统计;

解决方式:
针对需求一:
主要是重构异常信息,加入异常码,异常信息依赖系统现有的log4j记录到数据库,再根据异常码提供建议解决方式。
异常重构主要设想如下图:
[img]

 [/img]

所有的异常(非运行时)都为BaseException子类,这个已经被定下来了;
系统现有日志记录主要是通过log4j,并且异常信息基本都会通过输出,我现在的设想依赖于log4j实现,
在配置文件中新增log4j.appender.DATABASE=com.utils.log.appender.JDBCAppender
在JDBCAppender实现数据日志保存,可以保存些业务信息及系统信息,如:应用IP及应用名;
暂时设定的日志属性有:jylx(交易类型),className,methodName,xtsj,loglevel,exceptionCode,message,exception,threadName,HOSTNAME,IP
这样集群下日志也可以统一管理。
这相我自己已经简单的实现了下,但不了解log4j原理,也不知道在实际应用中会产生什么情况。
然后在加个前台查询功能,针对异常信息进行查询。

不知道大家有什么修改建议或其它实现方式?

需求二:
看了在论坛看了些的帖子,有的建议用AOP记录,或与业务藕合,在一起保存。
由于记录是交易的状态,比较重要,且存在批量的交易,与业务一块保存,准备写个公共方法用于保存,根据交易信息关联记录各阶段的状态;

需求三:
自定义查询以前自己有过简单、丑陋的实现。
思路主要是编写个SQL,根据SQL在界面上设置查询结果列名及查询条件,保存到应用中。
查询时,根据设置的查询结果及查询条件生成查询界面。
在前后台通过XML定义交互接口。
但定义的接口比较简单,及前台直接用的JS,比较丑陋难看。
不知道有没有参考实现方式?

希望大家提供一些建议。。。

  • 大小: 66.9 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android下自定义日志框架

    然而,这些方法无法满足所有需求,例如,我们可能希望将特定标签或优先级的日志发送到服务器,或者在本地保存日志文件。 设计自定义日志框架时,我们需要考虑以下几个关键点: 1. **日志级别**:自定义日志框架应...

    java springboot架构 自定义注解保存项目业务日志,使用线程池保存到数据库

    当方法执行时,AOP切面会捕获这个注解,执行相应的日志保存逻辑。这种设计使得业务代码与日志记录代码分离,保持了代码的整洁性。 `AsyncManager.java`是用于处理异步任务的核心组件。在Spring Boot中,我们可以...

    android自定义打印日志

    3. **日志保存路径**:确定日志文件在SD卡上的保存路径,比如`/sdcard/Logs/`。需要检查外部存储是否可用,并创建相应的目录。 4. **日志写入**:使用`java.io.File`、`java.io.FileWriter`或`java.io....

    matlab开发-自定义文件格式日志记录

    3. **iatconfigureLogging.m**: 这个文件可能提供了一个配置日志记录的接口,允许用户设置日志的格式(比如文本、二进制)、级别(如错误、警告、信息)和其他参数,以满足个性化需求。 4. **iatfread.m**: 这个...

    SecureCRT保存日志设置1

    用户可以根据自己的需求选择合适的日志保存方式。 1. 本地日志文件 用户可以将日志保存到本地文件中,文件路径和名称可以自定义。例如,用户可以将日志保存到 e:\sshlog\%S\%Y%M%D-%h%m%s.log,这个路径中,%S ...

    Android错误日志保存并上传服务器

    在Android开发过程中,错误日志的记录...总之,Android错误日志的管理和上传涉及到日志记录、本地保存、网络请求等多个环节,开发者需要根据项目的具体需求选择合适的方法和工具,确保问题能够被及时有效地发现和解决。

    Java自定义日志工具类

    通过这种方式,开发者可以根据业务需求自定义日志行为,使得日志系统更加高效且符合项目规范。在使用过程中,只需通过日志工具类提供的接口进行调用,而无需关心底层实现,提高了代码的可维护性和可扩展性。

    日志记录类(将日志保存在一个文件中)

    这篇博客"日志记录类(将日志保存在一个文件中)"可能详细讨论了如何创建一个自定义的日志类,用于将程序中的日志信息保存到本地文件中。以下是对这个主题的详细解释: 首先,我们来理解日志的基本概念。日志是程序...

    Fiori 接口保存查询日志

    - 在实现 "Fiori 接口保存查询日志" 功能时,开发者需要在 ABAP 层创建自定义逻辑来捕获和存储日志信息。 4. **日志接口实现**: - 首先,你需要在 ABAP 后端创建一个服务端接口,该接口接收来自 Fiori 应用的...

    Android下的自定义日志框架。移动开发一般没有必要引入第三方日志框架,可以自己编写

    5. **日志存储**:可以将日志保存到本地文件,便于后期分析。 6. **远程日志传输**:在需要的时候,可以将日志发送到服务器进行集中管理。 `JavaApk源码说明.txt`可能包含了关于这个自定义日志框架的源码解析,它...

    thinkphp6自定义日志记录

    date('Ym'), // 日志保存路径 'level' => ['debug', 'info'], // 允许记录的日志级别 ], ], ]; ``` 2. **创建处理器类**:接下来,你需要创建一个处理类,继承自ThinkPHP6的`Psr\Log\LoggerInterface`或`think...

    Kettle运行日志记录

    3. **日志格式和内容**:可以自定义日志信息的内容,包括时间戳、线程ID、日志级别、消息来源等,以提供清晰的调试信息。 4. **日志切片**:在处理大量数据时,可能会生成大量的日志。Kettle可以通过设置日志切片来...

    关于自定义Egg.js的请求级别日志详解

    总之,Egg.js框架本身提供了强大的日志管理能力,但有时由于业务需求的特殊性,开发者需要对日志记录的方式进行个性化定制。通过深入理解Egg.js的logger组件以及它所依赖的第三方模块,开发者可以灵活地实现自定义的...

    qt 保存日志功能demo,支持网络传送

    本篇将深入探讨如何在Qt中实现日志保存,并支持网络传送,以及本地自动清除等功能。 首先,让我们理解Qt的日志系统。Qt并没有内置一个完整的日志框架,但通过其丰富的类库,我们可以自定义构建。核心类`QDebug`是Qt...

    客户端日志存储系统,能保存日志

    本地存储通常是指将日志保存在运行应用的设备上,这种方式快速且低延迟,适用于实时监控和初步分析。而远程服务器存储则更适用于大数据量的日志收集和长期存储,便于跨设备、跨地域的访问和集中管理。 日志存储的...

    net6 控制台+ log4net+写数据库+自定义字段

    在.NET 6框架下,构建一个控制台应用并结合log4net进行日志记录,同时将日志数据存储到数据库并支持自定义字段,是一项常见的系统监控和...记得在实际应用中根据具体需求调整配置和代码,以满足不同的日志管理策略。

    Android-使用Kotlin和Timber轻松实现Android日志记录

    在生产环境中,你可能需要自定义日志树以满足特定需求,比如限制日志级别,或者将日志写入文件或发送到服务器。 现在,你可以轻松地在你的Kotlin代码中使用Timber来记录日志: ```kotlin fun someFunction() { ...

    C#自定义日志记录

    自定义日志记录允许我们根据特定需求定制日志格式、存储位置和处理方式,以满足项目的特殊需求。下面我们将深入探讨C#自定义日志记录的相关知识点。 1. **日志类的设计**: 在提供的代码示例中,`Log` 类是一个...

    自定义android Log类

    4. **日志存储与上传**:可以扩展功能,将日志保存到本地文件或自动上传到服务器,便于后期分析。 接下来,我们将构建一个简单的自定义Log类,命名为`MyLog`,它将继承自`java.lang.Object`,并实现上述功能: ```...

    安卓自定义Log

    2. **保存到本地**:将日志保存到SD卡上的文本文件或数据库中,便于离线分析。 3. **上传服务器**:将本地日志批量发送到服务器,用于远程分析或故障排查。 ```java public interface Logger { void printLog(int ...

Global site tag (gtag.js) - Google Analytics