1
我想要做一個小小的秒殺,而且我無法獲取生成的日誌文件。NLog沒有在控制檯應用程序中讀取我的app.config設置
這是我的NLOG配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.4.0" newVersion="3.2.4.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<nlog throwExceptions="true"
internalLogLevel="Warning"
internalLogFile="Rebus.Tests.Output.NLog.Internal.log"
internalLogToConsole="true"
xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="normalLogfile" type="File" fileName="${basedir}/Rebus.Tests.Output.log" />
<target name="normalConsole" type="Console" detectConsoleAvailable="true" />
</targets>
<rules>
<logger name="NormalLog" minlevel="Trace" writeTo="normalLogfile, normalConsole" />
</rules>
</nlog>
</configuration>
這裏是我的控制檯應用程序靜態主營:
var logger = LogManager.GetLogger("NormalLog");
logger.Error("This is a log error line");
但沒有什麼是既不記錄日誌文件,也不控制檯。
application.exe.config
位於bin/Debug運行時文件夾中。 我正在尋找帶有SearchEverything的日誌文件,以便它可以在任何文件夾中找到它。
添加一些信息,對這個問題,如果我把一個斷點檢查logger
可變我看不出有什麼配置讀取:
相同的行爲:記錄器是空的。 無論如何,我認爲GetLogger方法中的'named logger'字符串是config.file中的一個規則名稱。 – ferpega
根據NLog文檔,您必須在使用'GetLogger'方法時使用記錄器的名稱。你有沒有嘗試去除你的app.config中的nlog屬性?只是爲了確保他們中沒有一個是問題所在。 –
這就是問題@mightybdaboom Nlog屬性。其中一些必須不被支持,並使所有NLog配置失效。 請把它作爲答案來標記它。 謝謝。 – ferpega