BR 技术头条
te tech.meituan.com / 2022-08-18 23:32 / by @技术头条

日志导致线程Block的这些坑,你不得不防

研发人员在项目开发中不可避免地要使用日志,通过它来记录信息和排查问题。Apache Log4j2提供了灵活且强大的日志框架,虽然上手比较快,但稍有不慎也非常容易踩“坑”。本文介绍了美团统一API网关服务Shepherd在实践中所踩过的关于日志导致线程Block的那些“坑”,以及我们如何从日志框架源码层面进行分析和解决问题的过程,并在最后给大家分享一些关于日志避“坑”的实践经验,希望能给大家带来一些帮助。

发表评论

相关分享

li lisenhui.cn / 2024-11-23 21:54

隐藏的换行符导致Base64加密解密失败

通过 printf 和 base64 命令,可以快速实现字符串的加密与解密。操作简单高效,特别适合开发调试或轻量级任务。灵活使用 Linux 工具,让你的工作更高效!

无图
di www.diguage.com / 2024-11-02 16:33

基于 Docker 搭建开发环境(二):EFK 日志套件

本文介绍了如何使用 Docker 和 EFK(Elasticsearch、Fluentd、Kibana)套件构建日志管理系统,通过 Fluentd 将 NACOS 和业务日志集中发送至 Elasticsearch,方便数据分析和故障排查。文章提供了 `docker-compose.yml` 配置文件示例,解决了插件安装、权限设置和健康检查等常见问题,为构建灵活高效的日志管理系统提供了实用方法。

无图
cr crossoverjie.top / 2024-11-02 16:15

日志与追踪的完美融合:OpenTelemetry MDC 实践指南

本文介绍了如何在 OpenTelemetry 中使用 MDC(映射诊断上下文)实现日志与链路追踪的集成,帮助开发者快速定位问题。通过将 `trace_id` 等信息写入日志 MDC,实现日志和分布式追踪系统的无缝对接。在 Java 中结合 Logback 或 Log4j 并借助 OpenTelemetry agent,可以自动生成包含 MDC 的日志,便于多线程环境中的问题排查。

无图
ix ixyzero.com / 2024-08-06 08:18

2024年CrowdStrike导致的Windows系统大规模蓝屏事件整理

本文整理了2024年7月19日因CrowdStrike导致的大规模Windows系统蓝屏事件。由于CrowdStrike更新其Falcon安全产品的配置文件,许多Windows系统出现蓝屏崩溃,影响全球多国的重要业务系统。此事件引发了对安全软件稳定性和供应链风险的反思。作者分析了事件的时间轴、技术原因及对安全产品设计的启示。

无图
le www.leavesongs.com / 2024-03-13 13:26

UTF-8 Overlong Encoding导致的安全问题

Overlong Encoding是将1个字节的字符,按照UTF-8编码方式强行编码成2位以上UTF-8字符的方法。

0xC0AE并不是一个合法的UTF-8字符,但我们按照UTF-8编码方式将其转换出来的,这就是UTF-8设计中的一个缺陷。

按照UTF-8的规范来说,我们应该使用字符可以对应的最小字节数来表示这个字符。那么对于点号来说,就应该是0x2e。但UTF-8编码转换的过程中,并没有限制往前补0,导致转换出了非法的UTF-8字符。

这种攻击方式就叫“Overlong Encoding”。

无图
ix ixyzero.com / 2024-01-14 18:57

Nginx日志分析-MIME types

Nginx日志的分析,尤其是加白,在不是特别清楚功能和作用的情况下,还是应该细粒度的操作,比如先按照Content-Type加白,就比按照domain维度的加白粒度会更细一点,比按照uri来加白要更方便和准确一点。简单记录一下,方便后面有需要的时候参考。

无图
fa farer.org / 2024-01-13 23:30

Kratos 漫游指南 3 - 日志

本篇讲讲Kratos日志组件的使用方式。

在服务上线后,我们可以使用日志来观察程序的行为、诊断问题或者配置相应的告警等。定义良好的结构化日志,能够提高日志的检索效率,使处理问题变得更加方便。

无图
ad www.addesp.com / 2023-12-11 23:16

协程和线程的历史

昨天运营商线路出了问题,体验了一把电话线拨号上网一样的网速。

打开浏览器是这样的场景:
先白屏一会儿。
逐渐显示出网页上的全部文字。
卡一会儿。
慢慢地把网页上的所有图片显示出来。

正在无聊地等待网页加载的时候阴差阳错地意识到浏览器这种一边渲染一边下载的工作方式在历史上还促成了协程和线程这一概念的产生。那么就来讲一讲故事吧。

无图
co colobu.com / 2023-12-11 23:04

Go单线程运行也会有并发问题

一个Go大佬群中严肃的讨论了一个问题:Go程序单线程多goroutine访问一个map会遇到并发读写panic么?

答案是肯定的,因为出现了这个问题所以大家才在群中讨论。

为什么呢?因为单线程意味着并行单元只有一个(多线程也可能并行单元只有一个),但是多goroutine意味着并发单元有多个,如果并发单元同时执行,即使是单线程,可能就会产生数据竞争的问题,除非这些goroutine是顺序执行的。

无图