如果日志级别低于阈值,则防止昂贵的日志调用

2024-04-04

如果我执行 NLog.Trace():

logger.Trace("Json: {0}", Newtonsoft.Json.JsonConvert.DeserializeObject(myObject));

我的最低级别出现错误:

<logger name="*" minlevel="Error" writeTo="mail" enabled="false" />

我的对象会被反序列化吗?是的,当然是的。但我怎样才能避免这种情况呢?


if(logger.IsTraceEnabled)
    logger.Trace("Json: {0}", Newtonsoft.Json.JsonConvert.SerializeObject(myObject));

See 是否启用跟踪 http://nlog-project.org/documentation/v2.0.1/html/P_NLog_Logger_IsTraceEnabled.htm.

对于记录调用本身可能很昂贵(如上面的情况)或在重复的高调用循环中的调用来说,这是一个很好的做法。对于其他所有内容,通常不需要添加检查,因为框架本身在调用内执行相同的检查。

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

如果日志级别低于阈值,则防止昂贵的日志调用 的相关文章

  • 如何在MVVM中管理多个窗口

    我知道有几个与此类似的问题 但我还没有找到明确的答案 我正在尝试深入研究 MVVM 并尽可能保持纯粹 但不确定如何在坚持模式的同时启动 关闭窗口 我最初的想法是向 ViewModel 发送数据绑定命令 触发代码来启动一个新视图 然后通过 X
  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • WPF 显示/隐藏带有触发器的控件

    我是 WPF 新手 我尝试创建 xaml 逻辑来根据 ViewModel 上的 AllowMiscTitle 值显示 隐藏控件 xaml 由两个字段组成 一个标准图块的组合框 先生 女士 其他 当选择 其他 时 我希望显示文本框 我创建了以
  • 如何从 Ubuntu 连接到 Windows SQL Server

    在过去的两天里 我一直在尝试连接到远程 Windows SQL 服务器 但没有明显成功 我正在尝试使用 python 连接pyodbc包裹 我尝试关注所有与此相关的博客文章 但运气不佳 我首先关注了that http onefinepub
  • JSON 解析后小部件未更新

    我有以下代码 Override public void onReceive Context context Intent intent super onReceive context intent if CLOCK WIDGET UPDAT
  • 更新条目而不更新时间戳

    我在 mysql 表中有一个属性为 ON UPDATE CURRENT TIMESTAMP 的时间戳 有没有办法在特殊情况下手动禁用更新时间戳 例如 更新条目以修改博客文章 但不重新日期 您可以在更新命令中手动将列的值设置为其当前值 UPD
  • cmake add_custom_command 具有多个输出文件的问题

    我注意到在使用 cmake 时存在一些潜在的不正确行为add custom command和多个输出文件 我已经能够将问题隔离到一个最小的示例 见下文 看来当我在我的中指定了两个输出文件时add custom command 在某些情况下
  • WPF 绑定属性 Path 和 XPath 是否互斥?

    假设我有一个UserControl whose DataContext被设置为一个具有XmlDataProvider财产 我想在控件的 XAML 中绑定到此属性 并指定一些 XPath 我试过这个
  • Telerik RadGrid - 如何设置插入时的默认数据?

    当我单击 添加记录 按钮时 我希望其中一列具有默认值 我如何在后面的代码中做到这一点 这是一个动态日期并且可以随时更改 如果该列不是GridTemplateColumn 您可以使用列的指定默认值DefaultInsertValue属性 像这
  • Java:如何对两个对应的数组进行排序?

    我有两个数组 First array 25 20 50 30 12 11 Second Array New York New Jersey Detroit Atlanta Chicago Los Angeles 第二个数组中的每两个城市对应
  • 在 python pygame 中使用 cos() 和 sin() 以恒定速度从玩家发射粒子

    在 python pygame 中 我试图让我的玩家从玩家中心开始向鼠标方向发射粒子 class Particle def init self dx dy x y self dx dx self dy dy self x x self y
  • 对象类型和引用类型之间的区别

    我是从 Head First Java 中学习多态性并得出这个概念的 有人可以用例子解释一下吗 编译器检查引用类型的类 而不是对象类型 那么引用类型和对象类型有什么区别呢 我不认为他们对 对象类型 和 引用类型 的使用是标准化的 但这是我的
  • 无法将 ADT 插件安装到 Eclipse - “违反合同”错误消息

    昨天在Eclipse中安装ADT插件时遇到了找不到所需项目的问题 我通过打开下载站点列表并勾选列表底部的两个站点来解决这个问题 由于某种原因没有选择这两个站点 其中一个地址包含 mylyn 一词 现在 当 fetchingjavax xml
  • CMake 在 Windows 上找不到 wxWidgets

    我的 CMakeLists txt 中有以下代码片段 如中所述wxWidgets 维基 https wiki wxwidgets org CMake set wxWidgets ROOT DIR libs wxWidgets set wxW
  • 访问数据视图中过滤项目的列表

    我使用 DataView 来填充网格 并使用过滤器与可见行进行交互 我的问题是在应用过滤器后 行更改或行计数更改 我如何访问数据视图以仅迭代那些可见行 例如进行一些计算 因为行本身没有公开暴露 如果是的话 行并不总是数据元素 因为也可以引用
  • 向 ObservableCollection 添加元素会导致异常 Index was out of range

    我有一个代码 允许用户选择一个文件 将一些有关它的信息添加到可观察的集合中并显示上传进度 完成后 它将图像绑定到图像视图 它立即可以正常工作 但如果重复该过程 则会引发异常 System ArgumentOutOfRangeExceptio
  • 从 URL 添加图像到 PDF?

    我正在尝试将 URL 地址中的图像添加到我的 pdf 中 代码是 Image image Image getInstance http www google com intl en ALL images logos images logo
  • 我无法理解的Python print 行为

    我的代码片段如下所示 from time import sleep for i in xrange 10 status hello s str i status status chr 8 len status 1 sleep 1 print
  • C# CsvHelper - 具有不同数量属性的记录

    我在遗留项目上使用 CsvHelper 版本 7 1 0 如果可能的话 我宁愿暂时保留该版本 我有一个具有不同数量属性的对象列表 我想将其保存为 csv 例如 var list new List
  • Express.js文档中嵌套的[]是什么意思?

    例如 app listen方法记录如下 方括号中嵌套的 host 和 backlog 是什么意思 app listen port host backlog callback 谢谢你 方括号通常是可选参数 像这样的嵌套方括号意味着它们是可选的
  • Yii 提交按钮 i18n

    我找到了如何国际化提交按钮的消息 例如 echo CHtml submitButton Yii t tr Print array confirm gt Yii t tr Please confirm printing 然后设置语言也可以很好
  • 如果日志级别低于阈值,则防止昂贵的日志调用

    如果我执行 NLog Trace logger Trace Json 0 Newtonsoft Json JsonConvert DeserializeObject myObject 我的最低级别出现错误