![]() |
1
2
日志记录有助于调试问题,特别是当您转到生产环境,并且问题发生在您无法控制的机器上时。最好的计划永远不会在与敌人的接触中幸存下来,而日志记录可以帮助你在面对真实世界的数据时跟踪战斗的进展。
当您开始需要这些特性时,您需要开始使用日志库。如果您发现自己正在更改程序以获得其中一些功能,您可能需要查看一个好的日志库。它们易于学习、设置和使用,而且无处不在。 |
![]() |
2
2
在某些环境中,日志记录的要求可能会发生变化,但更改或部署新的可执行文件的成本很高。(即使您拥有源代码,由于内部官僚作风,向程序中添加单行日志记录更改也是不可行的。) 日志库提供了一个框架,程序将使用它来发出各种各样的消息。这些可以通过源(例如,它首先被发送到的记录器对象,通常对应于发生事件的类)、严重性等来描述。 在运行期间,消息的实际传递是使用一个“容易”编辑的配置文件来控制的。在正常情况下,大多数信息可能会完全被掩盖。但是,如果情况发生变化,则更简单的修复方法是启用更多消息,而无需部署新程序。 以上描述了我理解的理想日志框架;在实践中,我在Java和Python中使用了它们,但在这两种情况下,我都没有发现它们值得增加复杂性。:-( |
![]() |
3
1
它们是用来记录东西的。 或者更严重的是,为了节省您自己编写日志的时间,您可以灵活地选择日志的存储位置(数据库、事件日志、文本文件、CSV、发送到远程web服务、由pixies在天鹅绒垫上交付)以及运行时记录的内容,而不必重新定义全局变量然后重新编译。 如果你只为自己写,那么你不太可能需要一个,它可能会引入一个你不想要的外部依赖,但是一旦你的库开始被其他人使用,那么拥有一个日志框架就可以很好地帮助你的用户和你追踪问题。 |
![]() |
4
0
我知道当我有多个子系统具有“详细日志记录”时,日志库是有用的,但是我只想看到其中一个子系统的详细数据。
|
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |