使用 class 库的 Nlog
Nlog with a class Library
我在一个单独的地方有一个class库和配置文件我想使用它
所以我做了以下
LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration(configurationFile , true);
LogManager.ReconfigExistingLoggers();
NLog 的配置是远程 app.config 的一部分,看起来像
<configuration>
<!-- ... -->
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<!--
Log in a separate thread, possibly queueing up to
5000 messages. When the queue overflows, discard any
extra messages
-->
<target name="file" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard"
layout="${machinename} - ${level} - ${longdate} - ${callsite} - ${threadid} - ${message} ${exception:format=tostring}">
<target xsi:type="File" fileName="C:\logs/${level}.txt" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="file" />
</rules>
</nlog>
</configuration>
配置对象 LogManager.Configuration
总是有默认值,不知道如何解决这个问题。
当创建第一个 NLog 记录器对象时,NLog 将尝试自动加载 NLog.config(或 app.config)。搜索多个位置:
https://github.com/nlog/NLog/wiki/Configuration-file#configuration-file-locations
您应该尝试激活 NLog 内部记录器,看看为什么它在不手动加载的情况下找不到 "remote app.config"(可以通过代码启用):
https://github.com/NLog/NLog/wiki/Internal-Logging
不建议 class 库本身尝试修改全局 NLog 配置,因为它可能会使主应用程序感到惊讶。如果想为您的 class-library 使用独立的 NLog 配置,那么您应该考虑创建一个独立的 NLog LogFactory:
https://github.com/NLog/NLog/wiki/Configure-component-logging
如果您想从非标准路径(而不是 app.config)加载 NLog.config。那么你也可以这样做:
https://github.com/NLog/NLog/wiki/Explicit-NLog-configuration-loading
我在一个单独的地方有一个class库和配置文件我想使用它 所以我做了以下
LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration(configurationFile , true);
LogManager.ReconfigExistingLoggers();
NLog 的配置是远程 app.config 的一部分,看起来像
<configuration>
<!-- ... -->
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<!--
Log in a separate thread, possibly queueing up to
5000 messages. When the queue overflows, discard any
extra messages
-->
<target name="file" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard"
layout="${machinename} - ${level} - ${longdate} - ${callsite} - ${threadid} - ${message} ${exception:format=tostring}">
<target xsi:type="File" fileName="C:\logs/${level}.txt" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="file" />
</rules>
</nlog>
</configuration>
配置对象 LogManager.Configuration
总是有默认值,不知道如何解决这个问题。
当创建第一个 NLog 记录器对象时,NLog 将尝试自动加载 NLog.config(或 app.config)。搜索多个位置:
https://github.com/nlog/NLog/wiki/Configuration-file#configuration-file-locations
您应该尝试激活 NLog 内部记录器,看看为什么它在不手动加载的情况下找不到 "remote app.config"(可以通过代码启用):
https://github.com/NLog/NLog/wiki/Internal-Logging
不建议 class 库本身尝试修改全局 NLog 配置,因为它可能会使主应用程序感到惊讶。如果想为您的 class-library 使用独立的 NLog 配置,那么您应该考虑创建一个独立的 NLog LogFactory:
https://github.com/NLog/NLog/wiki/Configure-component-logging
如果您想从非标准路径(而不是 app.config)加载 NLog.config。那么你也可以这样做:
https://github.com/NLog/NLog/wiki/Explicit-NLog-configuration-loading