2017-05-06 11 views
0

私はasp.net core 1.1 appを持っています。これはUbuntu 16.04で動作しています。ロギングはNLogを使用して構成されていますNLogはLinux上で動作しません

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

私のdevのWindowsシステムではすべてが正常に動作している:フォルダが作成されたログと期待通りにログが働いています。しかし、Linuxのロギングでは動作しません。なにが問題ですか?

私は最終的に問題を解決してきました

<?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

nlog.config。 権限に問題がありました。 $ sudo chmod -R 777 .といくつかの再開がトリックです。すべてが今ロギングしています。

+1

注意! 777は、潜在的に危険なアクセス許可です。特に、再帰的に実行しているときはそうです。ファイル/ディレクトリへの書き込みが必要なプロセスのユーザー/グループを確認し、それに応じてアクセス権を変更する方がよいでしょう。 –