什么样的日志记录对您的应用程序来说是好的日志记录?

2024-04-01

因此,我们已经讨论了在我的工作地点进行登录,我想知道这里的一些人是否可以给我一些关于你们的方法的想法?

通常我们的场景是,根本没有日志记录,并且大多数是 .NET 应用程序、winforms/WPF 客户端通过 Web 服务进行通信或直接与数据库进行通信。

所以,真正的问题是,您将在哪里记录或记录什么?目前我们有用户报告错误消息 - 所以我假设日志启动/关闭、异常......

你用它来调用网络服务或数据库吗?页面加载?

您如何很好地了解用户当时想要做什么?

是最好一路记录多次尝试/几天的所有内容,还是只记录您需要的内容(考虑到硬盘很便宜)。

我想这是几个问题,但我想更多地了解大型商店的实际做法是什么!


日志记录的关键是良好的规划。我建议您查看企业库异常和日志记录应用程序块(http://msdn.microsoft.com/en-us/library/cc467894.aspx http://msdn.microsoft.com/en-us/library/cc467894.aspx)。虽然有一点学习曲线,但效果很好。我目前赞成的方法是定义 4 个优先级。 4=未处理的异常(事件日志中的错误),3=已处理的异常(事件日志中的警告),2=访问外部资源,例如 Web 服务、数据库或大型机系统(事件日志中的信息),1=详细/其他任何内容感兴趣的(事件日志中的信息)。

使用应用程序块可以很容易地调整您想要记录的优先级。因此,在开发中,您会记录所有内容,但是当您在生产中获得稳定的系统时,您可能只对未处理的异常和可能已处理的异常感兴趣。

Update:为了清楚起见,我建议您登录 winform/wpf 应用程序和网络服务。在 Web 场景中,我过去遇到过问题,很难将客户端上的错误连接回应用程序服务器。主要是因为通过 Web 服务的任何错误都会被包装为 SOAP 异常。我记不清了,但我认为如果您使用自定义异常处理程序(这是企业库的一部分),您可以将数据添加到异常中,例如来自应用程序服务器的异常的处理实例 ID。这使得使用 LogParser ().

第二次更新:我还喜欢为每个不同的事件提供单独的事件 ID,并在源代码管理下的文本文件或电子表格中跟踪该事件。是的,这很痛苦,但如果您足够幸运,有一个 IT 团队在生产中照顾您的系统,我发现他们倾向于期望不同的事件具有不同的事件 ID。

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

什么样的日志记录对您的应用程序来说是好的日志记录? 的相关文章

  • 如何在类文件中使用BackGroundWorker?

    我的program cs调用mdi父frmMain frmMain 然后根据用户操作打开不同的子表单 所有的处理逻辑都写在BusinessLogic cs中 frmMain 在加载时调用 BusinessLogic cs 的方法来初始填充数
  • .net 应用程序中的内存泄漏

    我正在 VB net 2005 中开发一个桌面应用程序 该应用程序包含一个间隔为 1 分钟的计时器 每次计时器计时 就会执行一组函数 大部分与数据库相关 最初 应用程序运行良好 在进程 任务管理器 中 每次调用计时器时 CPU 使用率都会达
  • 这可以用 Moq 来嘲笑吗?

    我正在努力模拟一些外部依赖项 并且在一个第三方类中遇到了麻烦 该类在其构造函数中接收另一个第三方类的实例 希望 SO 社区能给我一些指导 我想创建一个模拟实例SomeRelatedLibraryClass它的构造函数接受一个模拟实例Some
  • 我如何知道文件已打开或正在使用? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法检查文件是否正在使用 https stackoverflow com questions 876473 is there a way to check if a file is in use
  • 将浮点型转换为双精度型

    我正在尝试转换Single to Double同时保持原来的价值 我找到了以下方法 Single f 5 2F Double d1 f 5 19999980926514 Double d2 Double Parse f ToString 5
  • MVVM Light Toolkit 抛出 System.IO.FileLoadException

    我正在运行 VS 2010 和 Expression Blend 4 beta 我从提供的模板创建了一个 MVVM Light 项目 当我尝试在 VS 2010 设计器窗口中查看 MainWindow Xaml 时 出现 System IO
  • .NET 的 C 代码解析器

    有谁知道 NET 的 C 解析器库吗 我打算将 C 代码解析为某种形式的对象图 这样我就可以将其转换为不同的语言 ANTLR 可以做你想做的事 它有一个 C 预处理器和 ANSI C 语法 https github com antlr gr
  • 替换字符串中的换行符 C#

    如何在 C 中替换字符串中的换行符 使用替换为Environment NewLine myString myString Replace System Environment NewLine replacement text add a l
  • System.Windows.Threading.Dispatcher.Invoke(System.Delegate, System.Object[]) 何时添加?

    使用我的应用程序的一些人似乎越来越 System MissingMethodException Method not found System Object System Windows Threading Dispatcher Invok
  • 如何防止记录机器人框架中除 Log 关键字之外的所有关键字?

    I am a beginner in robot framework I want the log file of my robot test to contain the logs for only the log keyword I t
  • 扭曲的日志记录到屏幕(标准输出)不起作用

    我有这个小程序取自这里 https twistedmatrix com documents 16 3 0 core howto logger html usage for emitting applications from twisted
  • 框架中有通用的交换方法吗?

    框架中是否存在这样的方法 public static void Swap
  • 检测笔记本电脑盖子的关闭和打开

    是否可以检测笔记本电脑的盖子何时打开或关闭 从我读到的内容来看 这是不可能的 但 SO 之前已经帮助我完成了不可能的任务 我发现唯一可能朝着正确方向的事情是关于报告电源按钮所需的 IOCTL 的 MSDN 博客文章 https learn
  • WPF DataGrid 排序后滚动到顶部

    我有一个使用数据网格的 Net 4 0 WPF 应用程序 目前 按列排序后 网格的滚动位置保持在排序前的位置 对于此应用程序 我需要在任何排序后滚动到网格顶部 我尝试过像这样处理排序事件 Private Sub myDataGrid Sor
  • 如何将 NLog 用于 DLL

    我正在尝试使用 Nlog Refresh 1 0 为类库项目实现一个简单的日志 当 nlog 从 dll 中实例化时 它似乎不会创建日志文件 还有其他办法解决这个问题吗 我的配置文件如下所示
  • 从 DataGridViewSelectedRowCollection 复制列详细信息

    我有一个 DataGridView 它绑定到一个由设计时未知的 SQL 查询返回的 DataSet 好吧 我知道查询是什么 我只是不知道用户选择了哪一个 我允许用户从表中选择一组行并单击 确定 按钮 然后我想将这些行复制到新的 DataGr
  • 与常规 SQL 查询不同,为什么“linq to sql”查询以 FROM 关键字开头?

    为什么 linq to sql 查询以FROM与常规 SQL 查询不同的关键字 LINQ 模仿Logical Query processing在 SQL 中你有 8 SELECT 9 DISTINCT 11 TOP 1 FROM 2 ON
  • 了解 C# 中的协变和逆变接口

    我在一本有关 C 的教科书中遇到过这些内容 但我很难理解它们 可能是由于缺乏上下文 对于它们是什么以及它们有什么用处 是否有一个很好的简洁解释 编辑以澄清 协变接口 interface IBibble
  • 将 KeyDown 事件传递给其他控件

    我正在编写一个 C WinForms 应用程序 NET 4 0 我有一个WinFormsControl on a Form 用户开始使用键盘输入内容后 另一个Control出现 那Control是某种文本输入 我想将用户输入发送到该Cont
  • 有没有办法将对象(及其属性)序列化为 xml?

    创建一个类 将其命名为 FormElement 该类应该具有一些属性 例如它们具有数据元素的元数据 名称 序列号 值 只是一个字符串等 该类具有验证应用程序块验证类类型的属性 我想将其序列化为xml并反序列化 验证类的所有属性 包括验证应用

随机推荐

  • curl: (60) SSL 证书问题:无法获取本地颁发者证书

    root sclrdev home sclr certs FreshCerts curl ftp ssl verbose ftp abc u trup trup cacert etc ssl certs ca certificates cr
  • 从交替的一侧循环列表

    给定一个列表 a 0 1 2 3 4 5 6 7 8 9 我怎样才能得到 b 0 9 1 8 2 7 3 6 4 5 也就是说 产生一个新列表 其中每个连续元素交替地从原始列表的两侧取出 gt gt gt a i 2 if i 2 else
  • 有没有办法让 R 脚本在收到错误消息后继续执行而不是停止执行?

    我目前正在为学校的一个项目运行方差分析 该项目有大量可能的运行 1400 次左右 但其中一些无法在 R 中运行方差分析 我编写了一个脚本来运行所有方差分析 但其中一些它们不会运行 并且 Rout 文件给了我 错误于contrasts lt
  • (设计支持库)CollapsingToolbarLayout - 工具栏未固定在折叠上

    我在将设计支持库集成到我的应用程序中时遇到问题 由于某种原因 工具栏会随 CollapsingToolbarLayout 一起折叠 并且不会像 Chris Banes 的 Cheesesquare 示例中那样将其固定 https githu
  • 将带有参数的视图组件渲染到名为outlet ember.js 中

    我的应用程序模板中有 2 个命名网点 slider area and pre footer 有没有一种方法可以传递带有参数的视图组件 如main slider索引模板中显示的组件是否连接到命名出口 所以我需要通过 main slider s
  • Xamarin iOS - HomeKit 集成

    我正在使用 Xamarin iOS 开发一个应用程序 我需要添加使用来自内部 API 的地址向 HomeKit 添加附件的可能性 基本上我使用 Web 请求检索设备的地址 一旦我有了配件的 setupCode 我就会尝试使用 HomeKit
  • 如何在 SWI-Prolog 中创建事实?

    我只想创建类似的东西 like x y 我已经尝试了很长时间了 真的很沮丧 谁能告诉我该怎么做 我假设您正在交互地使用 swi 并尝试输入事实会给您一个如下错误 1 like x y ERROR toplevel Undefined pro
  • ini_set、set_time_limit、(max_execution_time) - 不起作用

    If I do set time limit 50 or ini set max execution time 50 然后当我回声时ini get max execution time 在我的本地主机上我得到50 但是当我在另一台服务器上执
  • 保持 LDAP 会话

    在 PHP 中 假设我在第 1 页有一个 LDAP 连接 ldapconn ldap connect ldapserver if ldapconn binding to ldap server ldapbind ldap bind ldap
  • 如何在不加载整个文件的情况下向 CSV 添加标题行?

    我有一个console application我想添加一个header row到 CSV 文件 而不将数据加载到应用程序中 我需要什么代码来执行此操作 并且仅检查第一行以查看标题是否已存在 如果不存在则不添加标题行 我尝试了几种方法来执行此
  • Excel VBA 类型不匹配将范围传递给数组时出错[重复]

    这个问题在这里已经有答案了 我正在尝试检索工作表中单元格数组的值 存储为数组而不是简单单元格 但由于某种原因不断收到运行时错误 13 类型不匹配 我读过有关类似问题的帖子 但其中许多似乎与数组类型错误 即不是变体类型 或静态大小有关 这是调
  • 如何指定 xsi:type zeep python

    我使用 python 的 zeep SOAP 客户端 尝试将一些数据获取到某些 wsdl address 我现在有以下内容 ambCase data1 value1 data2 value2 client zeep Client wsdl
  • 如何访问Hadoop HDFS中的文件?

    我的 Hadoop HDFS 中有一个 jar 文件 包含我想要修改的 Java 项目 我想在 Eclipse 中打开它 当我打字时hdfs dfs ls user 我可以看到 jar 文件在那里 但是 当我打开 Eclipse 并尝试导入
  • 如何创建一个不会重新创建具有相同输入参数的对象的类

    我正在尝试创建一个不会重新创建具有相同输入参数的对象的类 当我尝试使用与创建已存在对象相同的参数实例化一个类时 我只希望我的新类返回指向已创建 昂贵创建的 对象的指针 这是我到目前为止所尝试过的 class myobject0 object
  • Laravel 4 无法运行整个 RAW 查询

    我想使用 laravel 的 DB 类来执行 mysql 查询 但 Laravel 提供的功能都不起作用 这些都不起作用 DB statement DB select DB raw DB update DB select DB raw 这是
  • 转义字符串以在 XML 中使用

    我正在使用Python的xml dom minidom创建 XML 文档 逻辑结构 gt XML 字符串 而不是相反 如何让它转义我提供的字符串 这样它们就不会弄乱 XML 像这样的东西吗 gt gt gt from xml sax sax
  • 如何将 AWS WAF 与应用程序 ELB 结合使用

    我需要对 AWS 上托管的 Web 应用程序使用 AWS WAF 以为其提供额外的基于规则的安全性 我找不到任何方法直接将 WAF 与 ELB 结合使用 并且 WAF 需要 Cloudfront 添加 WEB ACL 以根据规则阻止操作 因
  • 在Interface Builder中设计UITableView的节标题

    我有一个xib文件带有UITableView我想使用委托方法添加自定义节标题视图tableView viewForHeaderInSection 有没有可能设计成Interface Builder然后以编程方式更改其一些子视图属性 My U
  • 遗留代码中的泛型

    我们有相当多的代码刚刚跳转到 Java 5 我们一直在那些打算在 Java 5 版本中发布的组件中使用泛型 但是剩下的代码当然充满了原始代码类型 我已将编译器设置为生成原始类型错误并开始手动清除它们 但按照目前的速度 这将需要very很长时
  • 什么样的日志记录对您的应用程序来说是好的日志记录?

    因此 我们已经讨论了在我的工作地点进行登录 我想知道这里的一些人是否可以给我一些关于你们的方法的想法 通常我们的场景是 根本没有日志记录 并且大多数是 NET 应用程序 winforms WPF 客户端通过 Web 服务进行通信或直接与数据