java jee curd

这一切始于当我和一位同事坐在一起解决一些应用程序问题时,当我注意到一些有趣的事情时。 他正在合并代码,我的眼睛吸引了此类“ org.apache.log4j.MDC”的注意。 这导致了以下发现:

什么是MDC?

MDC代表“ 映射诊断上下文” 。 它可以帮助您从多个来源中区分出交织日志。 让我详细解释。 当给定的servlet收到多个用户请求时,将使用线程为用户的每个请求服务。 这使多个用户登录到相同的日志文件和日志

语句混杂在一起。 现在,要过滤出特定用户的日志,我们需要将user-id附加到日志语句中,以便我们可以在日志文件中grep(search)它们,以使其具有某种意义。 一种明显的日志记录方式是在日志语句中附加用户ID,即log.info(userId +“ logged something”); 一种非侵入式的日志记录方式是使用MDC。 使用MDC,您可以将用户ID放在一个上下文映射中,该上下文映射由记录器附加到(每个用户请求的)线程上。 MDC是线程安全的,并且在内部使用Map来存储上下文信息。[ 礼貌:Kalyan Dabburi ]

如何使用MDC?

一个。 配置信息,该信息需要作为ConversionPattern的一部分记录在log4j.xml中(在这种情况下为user-id)。

log4j.appender.consoleAppender.layout.ConversionPattern = %d %i - %m - %X{user-id}%n

b。 在您各自的类中,在开始处理用户请求之前,请将实际的用户ID放在context(MDC)中。

MDC.put("user-id","SKRS786");

C。 在处理结束时,从MDC中删除上下文信息。

MDC.remove("user-id");

资源:

  • 登录执行
  • Log4J实施

使用MDC或NDC的哪一个?

NDC代表嵌套诊断上下文 。 它是附加上下文信息的基于堆栈的实现。 出于所有目的,请在NDC上使用MDC,因为MDC可以提高内存效率。 有关详细的比较, 请单击此处 。

对于所有新的应用程序开发,请使用logbacklogback是SLF4J的运行时实现。 如果您具有Log4J的现有应用程序,仍然值得切换到logback 。 有关详细说明, 请单击此处 。 要了解Java和JEE世界中日志记录的发展,请参阅Micheal Andrews的这篇文章 。

参考: Bemused博客上我们JCG合作伙伴 Srinivas Ovn的Java / JEE有效登录 。

翻译自: https://www.javacodegeeks.com/2013/01/effective-logging-in-javajee-mapped-diagnostic-context.html

java jee curd

java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文相关推荐

  1. Java / JEE中的有效日志记录–映射的诊断上下文

    当我和一位同事坐在一起解决一些应用程序问题时,一切都开始了,当时我注意到了一些有趣的事情. 他正在合并代码,我的眼睛吸引了此类" org.apache.log4j.MDC"的注意. ...

  2. 如何在ASP.NET Core中编写自定义日志记录提供程序

    目录 介绍 如何实现所需的接口 基础类和附件 FileLoggerProvider具体类及其附件 1. ConfigureLogging() 2. appsettings.json文件 介绍 源代码可 ...

  3. SLF4j使用、统一系统中所有的日志记录到slf4j

    SLF4j使用 在系统中使用SLF4j 开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法:给系统导入slf4的jar和logback的实现jar import ...

  4. java emr_java – EMR – 在Hadoop(和YARN)中使用自定义日志记录appender

    在我们的EMR集群中,我们使用自定义log4j-appender和log4j.properties来允许我们将日志转发到Splunk并让我们做一些魔术,提供的库和配置不知道如何操作. 在EMR 3.x ...

  5. java使用动态代理来实现AOP(日志记录)的实例代码

    AOP(面向方面)的思想,就是把项目共同的那部分功能分离开来,比如日志记录,避免在业务逻辑里面夹杂着跟业务逻辑无关的代码 id="cproIframe_u1892994_2" wi ...

  6. linux c 贝塞尔曲线_使用 logzero 在 Python 中进行简单日志记录 | Linux 中国

    快速了解一个方便的日志库,来帮助你掌握这个重要的编程概念.-- Ben Nuttall logzero 库使日志记录就像打印语句一样容易,是简单性的杰出代表.我不确定 logzero 的名称是否要与 ...

  7. NAS中如何查看日志记录?

    系统记录 记录TOS 系统的事件信息.TNAS 可储存10,000条事件记录,包括讯息.警告和错误. 1.输入用户名和密码登录TOS系统: 2.TOS 桌面 > 控制面板 > 系统状态 & ...

  8. java程序员工作中遇到的问题解决记录

    1.maven项目启动不成功,找不到指定mapper 在启动类里没有配@MapperScan 2.maven项目启动成功,但不能访问指定页面 pom.xml里缺少依赖 3.html中引入react.j ...

  9. linux中查看相关日志记录,linux重启查看日志及历史记录 查询原因

    linux系统文件通常在/var/log中下面是对下面常出现的文件进行解释 /var/log/message ---------------------------------------系统启动后的 ...

最新文章

  1. 从闲扯开始我的技术博客吧
  2. 拍拍信微服务网关实践分享
  3. Spring Boot定时任务-Quartz基本使用
  4. 东北电力大学计算机专业几本,东北电力大学是几本?东北电力大学怎么样?
  5. ORA-01157: cannot identify/lock data file处理
  6. 罗永浩:因为要烧投资人的钱 所以没有勇气再做手机了
  7. 全站仪坐标计算机公式,全站仪使用方法及坐标计算讲解
  8. 常用的五种大数据分析方法
  9. 怎样调整服务器C盘空间
  10. IDEA设置背景颜色(护眼色)
  11. [CAN] CAN BUS的错误检测和错误状态管理
  12. 如何在工作中设定和使用 SMART 目标
  13. Arduino与Proteus仿真实例-HC-SRF04超声波测距仿真
  14. 【R语言】【可视化】 之 维恩图
  15. 数据采集上报之灯塔SDK详解
  16. python字典添加主键_Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)...
  17. GPS模块运用: 定位测试软件设计(上位机)
  18. 快速了解Java设计模式
  19. 听说 Flutter 最近要多火爆就有多火爆,那就推荐一个不错的系列文章吧
  20. 基于ensp设计三层校园网络

热门文章

  1. JavaFX中WebView的java与JS代码互相调用
  2. 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设
  3. JavaFX之TableView
  4. FormData的使用
  5. 《走遍中国》珍藏版(十三)
  6. java中如何数组是如何赋值的?
  7. jquery动画与事件案例
  8. 2017蓝桥杯省赛---java---C---2(兴趣小组)
  9. 19年8月 字母哥 番外篇:周边技术生态
  10. idea初始化git 初始化git仓库