记录还是不记录?

2024-01-23

我现在正在构建一个程序,它是一个电子书管理器、阅读器、组织者和出版商,这也是一个电子书传输(到像 Kindle 这样的电子阅读器),但我正在开发它,一个问题突然出现在我的脑海中:“日志或不?”

然后我开始考虑日志。由于许多程序都会记录操作,我开始寻找它们并查看它们如何记录内容,然后我想知道:

  • 记录程序中发生的操作或事情(例如错误)很好吗?
  • In my case, it's good to log things?
    • 我需要记录什么?
  • 记录事物(文本文件、数据库...)的最佳方式是什么?
  • 有没有可以记录 Lazarus 的工具?

这是必要的。日志

  1. 相关数据(方法参数等)的所有错误。否则,您将出现一系列无法​​分析的与错误相关的行为。
  2. 关键的入口点和出口点(你的程序在做什么?此时应该调用这些方法吗?)
  3. 可能耗时的方法/操作(进入和退出),因此您可以测量正在发生的情况并了解您的程序正在做什么/在哪里。
  4. 您从中加载配置的位置(如果适用)。这意味着您可以知道您的程序如何配置自身(它使用哪个配置?)

如果你做到了这一点,你可能会发现你花在调试器上的时间越来越少。

我会错误地记录更多而不是更少,并且如果/当这成为问题时删除或过滤(如下所述,每天记录 Gbs 可能会适得其反)。我曾在许多系统上工作过,在这些系统中,日志记录将在开发后被拒绝或删除,而这个never发生,因为它非常有用。有些人反对日志记录,因为它会影响性能。如果是这种情况,请将其删除when众所周知这是一个问题,而不是以前。

您应该能够找到合适的日志记录框架(例如log4c http://log4c.sourceforge.net/ for C, log4j http://logging.apache.org/log4j/1.2/index.html对于 Java),适用于您的特定平台,允许适当的过滤和目标选择。这意味着您可以记录到文件(并限制日志大小)、数据库、远程监视器等并更改此决定在飞行中(通过配置文件或命令行参数)。除了插入适当的日志记录语句之外,正确的框架最初应该需要很少的东西。您不必编写太多文件管理或其他日志管理代码。

这是一个有用的博客条目 http://watchitlater.com/blog/archives/115关于这个主题,并提供进一步的指导方针。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录还是不记录? 的相关文章

  • 如何关闭 Grizzly 日志记录?

    如何关闭 Grizzly 的日志记录 我想关闭以下日志记录 Okt 18 2018 8 42 24 AM org glassfish grizzly http server NetworkListener start INFORMATION
  • 如何在没有 Cloud Explorer 的情况下从 Azure 应用服务获取事件日志文件?

    我有 Azure 应用服务 在 Visual Studio 2019 中 我可以执行以下操作来从中获取事件日志 Open 云浏览器窗户 查看 gt 云资源管理器 使用我的 Azure 凭据登录 展开订阅 然后展开资源组 然后展开应用服务 展
  • 更改 Logger 实例的全局设置

    我在用着java util logging Logger http download oracle com javase 1 4 2 docs api java util logging Logger html作为我的应用程序的日志引擎 每
  • 从重定向到日志文件的程序输出中删除进度条

    我正在运行一个程序 它会输出进度条 我是这样做的 python train py tee train log The train log看起来像下面这样 这是1号线 Training 这是2号线 000 valid 100 2630 263
  • 如何使用 Serilog ForContext

    我是 Serilog 新手 很难弄清楚如何使用上下文功能 当我运行下面的代码时 输 出文件不包含报告 ID 我缺少什么想法吗 var logger new LoggerConfiguration WriteTo File C Log txt
  • 关闭应用程序后如何调试

    我正在尝试重现问题 这需要在特定位置关闭并重新打开我的应用程序 这是我的问题 1 如何查看我的日志 使用NSLog命令 当我的 iPhone 未连接到 XCode 时 2 是否可以将iPhone模拟器的特定位置 例如市中心 设置为默认位置
  • Win32 API:如何读取序列号,或者如果不是数据则在超时内退出

    我需要一个函数来从串行端口读取数据 或者如果在时间间隔内没有数据则返回 例如 在 GNU Linux 上你可以使用poll orselect read Windows 中有类似的东西吗 下面是我尝试过的 它应该可以工作 但是功能获取重叠结果
  • XcodeColors 在 XCode 5 中不起作用

    我尝试安装XcodeColors在 XCode 5 中 但不幸的是 它不能与我从 XCode 4 6 获得的旧插件一起使用 下一步 我检查了 github 网站 在那里我看到了以下拉取请求 提供了 XCode 5 的工作版本 https g
  • LogRecord 没有预期的字段

    在使用 logging 模块的Python中 文档承诺LogRecord实例将具有许多属性 这些属性在文档中明确列出 然而 情况似乎并不总是如此 当我不使用日志记录模块的 basicConfig 方法时 下面的程序显示属性 asctime
  • 为什么使用自动激活文件句柄的三参数开放调用是 Perl 最佳实践?

    我有两个关于 Perl 的问题open功能 1 我好像记得从Perl 最佳实践的 3 参数版本open比两个参数版本更好 例如 open OUT gt gt file vs open OUT gt gt file 这是为什么 前几天我试图告
  • 在 C++ 中创建大文件的最快方法?

    使用 C 创建大约 50 100 MB 的平面文本文件 内容 添加第一行 应该被插入到文件中 400 万次 使用旧式文件 io fopen用于写入的文件 fseek到所需的文件大小 1 fwrite一个字节 fclose文件
  • 按下按钮并在java中的新窗口中打开文件

    我创建了一个 JFrame 并放置了一个文本字段和按钮 在文本字段中我放置了从文本文件读取的名称 我知道我想单击按钮并打开一个已知窗口 我想在其中放置名称 其他信息来自同一个文件 这是我的代码 这是我的主框架 package Fronten
  • 抑制 nginx 访问被拒绝错误日志

    我在 nginx 中设置了一些规则来拒绝 IP 访问 这很有效 但对于来自被拒绝 IP 的每个请求 都会记录以下开头的错误 error 7325 0 5761 access forbidden by rule client 有没有办法抑制这
  • PHP MVC 应用程序中哪里可以捕获异常?

    我有一个中小型 PHP 应用程序 用于练习 OOP 和 MVC 技能 我有初始化 引导程序调用的文件Router谁打电话控制器 gt 服务层 gt 存储库 数据库 然后将变量发送回视图层 所有依赖项均由 DiC IOC 处理 我创建抽象类
  • 如何在 python 日志记录中插入换行符?

    import logging logging basicConfig level logging DEBUG format asctime s levelname s message s datefmt H M S logging info
  • 在 C/C++ 中将数据从一个文件复制到另一个文件的最快方法?

    在我的代码中 我遇到一种情况 需要将数据从一个文件复制到另一个文件 我想出的解决方案如下所示 const int BUF SIZE 1024 char buf BUF SIZE int left to copy toCopy while l
  • Spring boot 中特定包的自定义日志文件

    我有一个带有专门操作的java包 专业化是因为它们很少被使用 并且我不想将它们与普通日志记录混合在一起 我知道添加logging file myapplication log会将日志记录重定向到此文件 但有没有办法指定仅从特定包记录到另一个
  • 带有 RotatingFileHandler 的 Python 3 记录器超出 maxBytes 限制

    我使用以下代码来限制日志文件的大小 最小示例 import logging from logging handlers import RotatingFileHandler Set up logfile and message loggin
  • 如何手动发送django异常日志?

    我的应用程序中有一个应该返回的特定视图HttpResponse 如果一切都成功完成并且类似HttpResponseBadRequest 否则 此视图适用于外部数据 因此可能会引发一些意外的异常 我当然需要知道发生了什么 所以我有这样的东西
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n

随机推荐

  • 如何使用WinAPI隐藏控制台窗口?

    我试图隐藏控制台窗口当我的C使用这个简单的应用程序启动WinAPI code define CONSOLE NAME 6FD66E14 FF0F 4B94 B8AF AFE3D42DC399 void hide window void Se
  • 通过 cmake 从 C++ 扩展构建 Python 子模块

    我正在尝试通过 cmake 将 c 扩展作为子模块合并到现有的 python 库中 构建 C 扩展可以正常工作 并将其作为 python 模块导入也可以 但不能作为头库的子模块 我有以下目录结构 frontend foo py bar py
  • 如何从“git stash save --all”中恢复?

    我想隐藏未跟踪的文件 但我一直传递错误的选项 对我来说 这听起来是对的 git stash save a all 但这实际上也隐藏了被忽略的文件 正确的是 git stash save u include untracked 当我跑步时gi
  • Pandas-将值设置为空数据框

    我已经初始化了一个空的 pandas 数据框 现在正在尝试填充该数据框 但我一直遇到相同的错误 这是我正在使用的 简化的 代码 import pandas as pd cols list ABC df pd DataFrame column
  • 带有点击处理程序和滚动条的 Google 地图信息框

    我有一个使用 Google Maps javascript API 和 Infobox 插件 本机 InfoWindow 的可自定义版本 的应用程序 它工作得很好 直到我出现以下用例 如果内容很大 我需要一个带有滚动条的信息框 并且它还需要
  • 无法创建 ScriptPluginFactory 类型的服务

    我的 gradle 突然停止工作了 目前的配置是 环境变量为GRADLE HOME 指向Gradle 3 2 1 只需运行命令即可gradle在命令提示符下 我收到以下消息 What went wrong Could not create
  • 如何部署消息排序的pubsub触发云函数?

    我想部署一个带有消息排序的 Pubsub 触发的云函数 https cloud google com pubsub docs ordering https cloud google com pubsub docs ordering gclo
  • 我如何删除 python 2.7,因为我已经在 ubuntu 上安装了 3.6.5?

    我安装了 2 7 和 3 6 5 起初在 ubuntu 18 04 中 唯一可用的 python 版本是 3 6 但在我安装了 numpy 包之后 2 7 也安装了 它变成了默认版本 有什么解决方案可以使 3 6 成为默认值而不是 2 7
  • Zend Forms - 元素 ID 修改以允许重复使用

    我有一个Zend Form我想在一页中多次重复使用的对象 我遇到的问题是每次渲染时它都有相同的元素 ID 我一直无法找到一种方法 可以在每次渲染表单时为所有 ID 提供唯一的前缀或后缀 完整的解决方案 子类Zend Form class M
  • .NET WebApi 如何防止 JSON 的 "$ref": "x" 输出

    我将 Web Api 与实体框架一起使用 我有一个名为 Gift 的控制器 当客户端 GET 的 API 时 我通过使用实体框架从 DB 获取所有 Gifts 并将其作为 JSON 返回 这是我的控制器功能 public List
  • 基于 DNS 的策略,用于在服务器关闭时显示漂亮的“当前离线”页面

    当服务器关闭时 如何使站点自动显示一个漂亮的 当前离线 页面 我的意思是 整个服务器关闭并且请求无法到达 IIS 手动更改 DNS 不是一个选项 Edit 我正在寻找某种 DNS 技巧来重定向到其他服务器 以防主服务器出现故障 我可以对 D
  • 如何设置 HTML5 范围输入的样式,使其在滑块前后具有不同的颜色?

    我希望左侧为绿色 右侧为灰色 如上图所示就完美了 最好是纯 CSS 解决方案 只需要担心 WebKit 这样的事可能吗 Pure CSS解决方案 Chrome 隐藏溢出input range 并填充剩余的所有空间 带有阴影颜色的拇指 IE
  • 为什么即使在配置之后 Git 也不允许我提交?

    这个问题看起来像是重复的 但事实并非如此 只是一个不断重复的细微差别 git 不断告诉我 请告诉我你是谁 即使在设置之后也是如此 当我跑步时git commit 这就是我得到的 git commit Please tell me who y
  • 我可以使用 JQuery 从 web.config 读取数据吗?

    我可以使用 JQuery 从 web config 读取数据吗 Jquery 是在浏览器中运行的 javascript 您的 web config 驻留在您的服务器上 如果您想公开 web config 中的数据 我认为您应该创建某种可以从
  • 编译错误:“stoi”不是“std”的成员

    My code include
  • Perl 6 中的递归正则表达式?

    我一直在试图弄清楚如何在 Perl 6 中执行递归正则表达式 对于一个玩具示例 平衡括号匹配器 它将匹配 inside PCRE https regex101 com r otEKh5 1例子 R Onigmo https rubular
  • 拖放图像

    我需要在 swing 中创建一个拖放系统 其中被拖动物体的图像在拖动过程中附加到光标上 理论上这是可以实现的 public Icon TransferHandler getVisualRepresentation Transferable
  • Altair - 无法获取折线图中某一层的工具提示

    当我绘制由两组线组成的分层图表时 某一层中的工具提示不显示 这也发生在 VL 编辑器中 任何有关为什么会发生这种情况的见解都将不胜感激 这是一个可重现的示例来演示该问题 实际上我在第一层有更多行 牛郎星版本 4 0 0 df pd Data
  • 如何删除 php 字符串中的%符号

    我需要从目录中的文件或图像名称中删除 符号 我使用哪个字符串 oldfile wallpapers temp uploaded file newfile wallpapers temp uploaded trim str replace f
  • 记录还是不记录?

    我现在正在构建一个程序 它是一个电子书管理器 阅读器 组织者和出版商 这也是一个电子书传输 到像 Kindle 这样的电子阅读器 但我正在开发它 一个问题突然出现在我的脑海中 日志或不 然后我开始考虑日志 由于许多程序都会记录操作 我开始寻