
Ruby 中如何同时把日志输出到文件和控制台?
Ruby 同时输出到文件和控制台:创建两个 Logger 实例分别输出,或封装一个多路 Logger 类统一调用。本文给出两种实现方案。
聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

Ruby 同时输出到文件和控制台:创建两个 Logger 实例分别输出,或封装一个多路 Logger 类统一调用。本文给出两种实现方案。

Python logging 默认输出到 stderr。输出到 stdout 需要显式创建 StreamHandler(sys.stdout)。本文介绍配置方法及容器环境的最佳实践。

C# 记录未捕获异常:订阅 AppDomain.UnhandledException 事件记录全局异常,TaskScheduler.UnobservedTaskException 处理异步任务异常。本文给出完整实现。

Java 记录未捕获异常:实现 Thread.UncaughtExceptionHandler 接口并设为默认处理器,所有未被 try-catch 捕获的异常都会触发记录。本文给出完整实现。

Python 记录未捕获异常:设置 sys.excepthook 自定义全局异常处理器,将异常信息写入日志。threading.excepthook 处理子线程异常。本文给出完整实现。

systemd 默认会在 rsyslog 崩溃后自动重启。通过 systemctl edit 创建覆盖配置,修改 Restart 策略即可控制。本文给出具体操作步骤。

Python 测量耗时:time.perf_counter() 精确(推荐)、time.time() 简单、time.monotonic() 单调。本文对比各计时函数的差异和适用场景。

Python 字符串补零用 zfill() 方法:'123'.zfill(5) 得到 '00123'。也可用 f-string 格式化 f"{n:05d}"。本文对比各方法。

解析 Apache 访问日志的方法:命令行工具(awk/grep/sed)快速提取、Python/Go 脚本批量分析、日志平台自动解析。本文对比各种方案。

解析 Nginx 访问日志的方法:awk/grep 命令行快速分析、Python 脚本批量处理、日志平台自动解析。本文对比各种方案及常用分析命令。

Python 的参数传递是"对象引用传递":可变对象(列表/字典)在函数内修改会影响外部,不可变对象(数字/字符串)不会。本文详解原理和注意事项。

Fluent Bit tail 插件漏读日志行通常是因为没有用 inotify 监听文件变化。开启 Inotify_Watcher On 即可实时捕获新行。本文说明原因和配置。