java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文
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可以提高内存效率。 有关详细的比较, 请单击此处 。
对于所有新的应用程序开发,请使用logback 。 logback是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中的有效日志记录–映射的诊断上下文相关推荐
- Java / JEE中的有效日志记录–映射的诊断上下文
当我和一位同事坐在一起解决一些应用程序问题时,一切都开始了,当时我注意到了一些有趣的事情. 他正在合并代码,我的眼睛吸引了此类" org.apache.log4j.MDC"的注意. ...
- 如何在ASP.NET Core中编写自定义日志记录提供程序
目录 介绍 如何实现所需的接口 基础类和附件 FileLoggerProvider具体类及其附件 1. ConfigureLogging() 2. appsettings.json文件 介绍 源代码可 ...
- SLF4j使用、统一系统中所有的日志记录到slf4j
SLF4j使用 在系统中使用SLF4j 开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法:给系统导入slf4的jar和logback的实现jar import ...
- java emr_java – EMR – 在Hadoop(和YARN)中使用自定义日志记录appender
在我们的EMR集群中,我们使用自定义log4j-appender和log4j.properties来允许我们将日志转发到Splunk并让我们做一些魔术,提供的库和配置不知道如何操作. 在EMR 3.x ...
- java使用动态代理来实现AOP(日志记录)的实例代码
AOP(面向方面)的思想,就是把项目共同的那部分功能分离开来,比如日志记录,避免在业务逻辑里面夹杂着跟业务逻辑无关的代码 id="cproIframe_u1892994_2" wi ...
- linux c 贝塞尔曲线_使用 logzero 在 Python 中进行简单日志记录 | Linux 中国
快速了解一个方便的日志库,来帮助你掌握这个重要的编程概念.-- Ben Nuttall logzero 库使日志记录就像打印语句一样容易,是简单性的杰出代表.我不确定 logzero 的名称是否要与 ...
- NAS中如何查看日志记录?
系统记录 记录TOS 系统的事件信息.TNAS 可储存10,000条事件记录,包括讯息.警告和错误. 1.输入用户名和密码登录TOS系统: 2.TOS 桌面 > 控制面板 > 系统状态 & ...
- java程序员工作中遇到的问题解决记录
1.maven项目启动不成功,找不到指定mapper 在启动类里没有配@MapperScan 2.maven项目启动成功,但不能访问指定页面 pom.xml里缺少依赖 3.html中引入react.j ...
- linux中查看相关日志记录,linux重启查看日志及历史记录 查询原因
linux系统文件通常在/var/log中下面是对下面常出现的文件进行解释 /var/log/message ---------------------------------------系统启动后的 ...
最新文章
- 从闲扯开始我的技术博客吧
- 拍拍信微服务网关实践分享
- Spring Boot定时任务-Quartz基本使用
- 东北电力大学计算机专业几本,东北电力大学是几本?东北电力大学怎么样?
- ORA-01157: cannot identify/lock data file处理
- 罗永浩:因为要烧投资人的钱 所以没有勇气再做手机了
- 全站仪坐标计算机公式,全站仪使用方法及坐标计算讲解
- 常用的五种大数据分析方法
- 怎样调整服务器C盘空间
- IDEA设置背景颜色(护眼色)
- [CAN] CAN BUS的错误检测和错误状态管理
- 如何在工作中设定和使用 SMART 目标
- Arduino与Proteus仿真实例-HC-SRF04超声波测距仿真
- 【R语言】【可视化】 之 维恩图
- 数据采集上报之灯塔SDK详解
- python字典添加主键_Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)...
- GPS模块运用: 定位测试软件设计(上位机)
- 快速了解Java设计模式
- 听说 Flutter 最近要多火爆就有多火爆,那就推荐一个不错的系列文章吧
- 基于ensp设计三层校园网络