2017-05-06 62 views
0

我有一個asp.net核心1.1應用程序,它運行在Ubuntu 16.04上。日誌記錄使用NLOG配置:NLog不適用於Linux

loggerFactory.AddNLog(); 
    loggerFactory.ConfigureNLog("nlog.config"); 
    app.AddNLogWeb(); 

在我開發的Windows系統一切正常:登錄創建的文件夾和日誌記錄工作正常。但在Linux日誌記錄不起作用。哪裏不對?

nlog.config

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     autoReload="true" 
     internalLogLevel="Warn" 
     internalLogFile="internal-nlog.txt"> 
    <extensions> 
    <add assembly="NLog.Web.AspNetCore"/> 
    </extensions> 
    <variable name="logDirectory" value="logs/${shortdate}" /> 
    <variable name="logRootDirectory" value="logs" /> 

    <targets> 
    <target name="fileLogTrace" xsi:type="File" fileName="${logDirectory}/trace.txt" /> 
    <target name="fileLogDebug" xsi:type="File" fileName="${logDirectory}/debug.txt" /> 
    <target name="fileLogInfo" xsi:type="File" fileName="${logDirectory}/info.txt" /> 
    <target name="fileLogWarn" xsi:type="File" fileName="${logDirectory}/warn.txt" /> 
    </targets> 

    <rules> 
    <logger name="*" level="Trace" writeTo="fileLogTrace" /> 
    <logger name="*" level="Debug" writeTo="fileLogDebug" /> 
    <logger name="*" level="Info" writeTo="fileLogInfo" /> 
    <logger name="*" level="Warn" writeTo="fileLogWarn" /> 
    </rules> 

</nlog> 
+0

什麼版本的NLog?你有權限在文件夾中寫入文件嗎?你有沒有檢查internal-nlog.txt? –

+0

@RolfKristensen NLog 5.0 beta 是的所有權限 即使在Windows上我也找不到這個文件。它應該放在哪裏?在應用程序的根文件夾? – Seekeer

回答

1

我終於解決了問題。 權限存在一些問題。幾個$ sudo chmod -R 777 .和幾個服務器重新啓動伎倆。現在一切都在記錄。

+1

小心! 777是一個潛在的危險許可,尤其是當你遞歸執行時。最好檢查需要寫入文件/目錄的進程的用戶/組,並相應地修改您的權限。 –

相關問題