【发布时间】:2018-04-19 02:09:03
【问题描述】:
日志记录会很快变得复杂。考虑到您有一些代码,如何向其中添加日志记录?您使用什么库?
有哪些好的代码技术可以最大限度地利用日志记录语句,同时对应用程序的影响最小?
【问题讨论】:
标签: logging
日志记录会很快变得复杂。考虑到您有一些代码,如何向其中添加日志记录?您使用什么库?
有哪些好的代码技术可以最大限度地利用日志记录语句,同时对应用程序的影响最小?
【问题讨论】:
标签: logging
库:Log4J 和 Log4Net(分别用于 Java 和 .NET)
来自 Log4J 网站:
在代码中插入日志语句是一种低技术的调试方法。这也可能是唯一的方法,因为调试器并不总是可用或适用的。这通常是分布式应用程序的情况。
另一方面,有些人认为日志语句会污染源代码并降低可读性。 (我们认为情况正好相反)。在没有预处理器的 Java 语言中,日志语句会增加代码的大小并降低其速度,即使关闭了日志记录也是如此。鉴于一个合理大小的应用程序可能包含数千条日志语句,因此速度尤为重要。
使用 log4j 可以在运行时启用日志记录,而无需修改应用程序二进制文件。 log4j 包的设计使这些语句可以保留在交付的代码中,而不会产生沉重的性能成本。可以通过编辑配置文件来控制日志记录行为,而无需接触应用程序二进制文件。
日志记录为开发人员提供了应用程序故障的详细上下文。另一方面,测试为应用程序提供了质量保证和信心。不应混淆日志记录和测试。它们是互补的。如果明智地使用日志记录,它可以证明是必不可少的工具。
【讨论】:
在其他问题中对此进行了相当多的讨论。如果您是 C# 人,请查看 What is the best logging solution for a c# net 3.5 project 或 What’s your logging philosophy?
搜索 Logging,您会发现更多。 :)
【讨论】:
查看Log4X日志的工具:ChainSaw
【讨论】:
我想补充一些关于日志记录实践的方面。
【讨论】:
当您决定日志记录理念以使其具有性能意识时,几乎没有什么需要考虑的事情。首先让我们分解日志记录所花费的资源。
以下是您可以采取的措施来尽量减少上述情况。
【讨论】: