与多个项目共享 nlog 配置以及正确的线程安全方式来全部写入同一日志文件?

2024-01-11

我的程序由一个 EXE 和 6 个 DLL 组成(当然每个人都引用每个人),我目前有一个粗略的静态日志记录类(Logger),它位于它自己的 DLL(Logger.dll)中,我将其添加为每个的引用我的项目并使用...但我没有重新发明轮子,而是希望用 nLog 替换它。

问题是我似乎无法弄清楚我的所有项目如何共享相同的 nLog 配置文件(我希望所有内容都记录到相同的文件,并且我不想为每个项目定义一个配置文件)。

  1. 有没有办法为我的所有项目提供一个配置文件?
  2. 这样做安全吗?每个项目中的 nLog 访问同一文件不会导致争用问题吗? nLog 已经正确处理这个问题了吗?

或者对我来说,将 nLog 包装在我的静态 Logger.dll 中(这样做很奇怪,但也可以工作)并继续像我今天在我的应用程序中所做的那样,这是否是最好的?

Thanks,


NLog 应该处理你想要的事情。 NLog.config 文件应用于应用程序 (EXE) 级别。因此,如果您在 NLog.config 中配置 NLog,则在应用程序启动时将读取该配置。所有类,无论是在 EXE 中,还是在某个 DLL 中,当它们从 NLog 检索记录器时,都将返回已根据 EXE 级别的 NLog.config 文件配置的记录器。

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

与多个项目共享 nlog 配置以及正确的线程安全方式来全部写入同一日志文件? 的相关文章

  • 删除是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 C 编程 free 如何知道要释放多少 https stackoverflow com questions 1518711 c programming how does free know how m
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • Gwan C#,如何获取HTTP标头?

    我需要它来重写 url 以了解我正在处理哪个友好的 url 用于用户代理和其他东西 EDIT public class Gwan MethodImplAttribute MethodImplOptions InternalCall exte
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 如何使用 NPOI 按地址(A1、A2)获取 Excel 单元格值

    我有一个 Excel 单元格地址 例如 A1 A2 如何使用 C 中的 NPOI 框架以编程方式访问此单元格 我找到的一些 Java POI 示例代码 CellReference cr new CellReference A1 row my
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 如何在另一个插件执行周围声明一个 Maven 插件执行之前和之后?

    我想在我的插件中创建一个执行顺序 该顺序围绕一个 Maven 插件 并在另一个 Maven 插件的执行之前和之后进行 所有 3 次执行都是部署阶段的一部分 这是我想做的一个例子 阶段 部署 url get 执行前 依赖 解压 url get
  • linux命令可以向json文件添加新的字段键值对

    我的目录中有一个 json 文件 我需要替换键的值 添加新的值键对 json 文件的格式如下 Name username Actionchecked Enablecheck true savecheck true User user pas
  • Watson Conversation Dialogue,如何使用槽保存用户输入

    在我的 Watson 对话中 我尝试使用插槽读取用户输入 我的要求是提示用户输入问题描述并将其保存在名为 issues description 的变量中 但在槽中 沃森在将其保存到变量之前检查意图或实体 就我而言 我已经提出了要检查的意图
  • Android 屏幕尺寸和屏幕密度图像选择

    我在尝试在不同尺寸的设备上使用多个水平图像时遇到问题 我有 7 个独立的评级栏 每个评级栏都使用不同的自定义图像 我已经缩放了所有图像并将它们放入各自的 dpi 可绘制文件夹中 我遇到的问题是 在 xlarge mdpi 屏幕 下图左上角
  • 如何在 SQL Server Management Studio 中测试表值函数?

    我从未使用过数据库函数 但我当前的项目需要它 我需要将一个常见的 sql 查询放入一个函数中 这样我们就不必在代码中输入数百次 我已经创建了该功能 但我不知道如何使用它 这是函数代码 USE DB NAME GO SET ANSI NULL
  • 如何创建工具提示? [复制]

    这个问题在这里已经有答案了 我想为工具提示创建一个自定义 CSS 类 它将包含长度超过 25 30 的字符串 通常这么长的文本不适合工具提示文本区域 无论如何 有没有办法做到这一点工具提示 ui bootstrap tooltip http
  • 和/或 Jekyll 上的 where_exp 表达式

    我正在尝试使用where exp根据两个类别过滤 Jekyll 页面or操作员 assign sortedPages site pages sort date reverse where exp page page categories c
  • Jenkins 管道:构建步骤的返回值

    在 Jenkins 的集成管道中 我使用以下命令并行触发不同的构建构建步骤 https jenkins io doc pipeline steps pipeline build step 如下 stage trigger all build
  • 如何在迁移触发器中设置 Cognito 组

    我目前正在使用 Cognito 触发器 用户迁移 构建从 AWS 用户池到另一个用户池的迁移解决方案 我想在迁移期间设置一个组 但我无法执行此操作 因为在整个上下文完成之前尚未创建用户 我该如何解决这个问题 我不想创建 PostAuth l
  • 如何在 ASP.NET Core 2.0 中实现 machineKey

    在 ASP NET 非核心 中 我通常会在 web config 中添加一个 machineKey 以便我可以在本地计算机而不是服务器上执行一些功能 以便数据库 回调操作将使用相同的密钥 例如
  • 查找仅在 R 中的一行中出现的变量

    使用 BASE R 我想知道如何回答以下问题 有没有什么价值X or Y仅发生在一行中而不发生在其他行中 如果是 请出示我的期望的输出 below f lt data frame id c rep AA 4 rep BB 2 rep CC
  • (Symfony 4) 如何从 PHP 代码中访问 Liip Imagine 包?

    我希望能够上传一个文件 并从中创建 3 个缩略图 并将所有内容存储在 S3 服务器上 我的 liip LiipImagineBundle 设置如下 liip 想象 configure resolvers resolvers setup th
  • CMake 中的 Makefile 等效项

    我刚刚开始使用CMake 已经不到一周了 我已经编写了一个 Makefile 并且正在尝试在 CMake 中编写其等效项 我不知道应该在 CMake 中为给定 Makefile 中的每个语句使用哪些命令 我该如何开始 有什么地方可以找到这方
  • Django 结合 __unaccent 和 __search 查找

    所以我正在尝试使用 unaccent and search在同一模型过滤器中 但这样做时收到错误 我正在尝试使用术语 Pokemon 与术语 Pok mon 匹配来创建一个过滤器 注意 Game objects filter title u
  • JPA 2.1 中的 @ConstructorResult 映射无法与 Hibernate 4.3.5.Final 一起正常工作

    我尝试将本机查询映射到非实体类 我有以下实体 Entity Table name Groups SqlResultSetMapping name groupList classes ConstructorResult targetClass
  • 使用节点实现重新填充堆栈

    在我把它全部取下来打印出来后 我很难重新填充堆栈 我正在使用节点实现 所以我认为这个事实让我感到困惑 任何建议将不胜感激 谢谢 这是我原来的 stack print Function to print Gumball info field
  • 使用隐式/显式转换运算符是否违反单一职责模式而支持 DRY?

    我需要在这两个类之间进行转换 并且想要保持 DRY 但不违反单一职责模式 public class Person public string Name get set public int ID get set public class P
  • 模块内部的参考控制器

    我在模块内定义了一个控制器 angular module myModule controller MyCtrl function scope scope property myproperty 部分内容包含在主 html 中 如下所示 di
  • 詹金斯第一次访问时非常慢

    清晨第一次访问詹金斯非常慢 如果我们重新启动 Jenkins 服务器 也会发生这种情况 因此第一个访问 jenkins 的开发人员有时需要等待长达 3 分钟 我们认为这是构建负载的问题 因此 我们将所有构建工作转移给詹金斯奴隶 但问题并没有
  • 与多个项目共享 nlog 配置以及正确的线程安全方式来全部写入同一日志文件?

    我的程序由一个 EXE 和 6 个 DLL 组成 当然每个人都引用每个人 我目前有一个粗略的静态日志记录类 Logger 它位于它自己的 DLL Logger dll 中 我将其添加为每个的引用我的项目并使用 但我没有重新发明轮子 而是希望