2017-04-21 12 views
1

NLogを追加した単純なASP.NET Webサイトを作成しましたが、ログファイルは作成されず、例外もスローされません。私は、トラブルシューティングを試してみましたが、それはhttps://github.com/NLog/NLog/wiki/Logging-troubleshootingNLog for ASP.NET Webサイトにログが記録されない

私のweb.config

<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" 
    autoReload="true" 
    throwExceptions="true" 
    internalLogLevel="Off" 
    internalLogFile="c:\temp\nlog-internal.log"> 
    <targets> 
     <target name="file" type="File" fileName="C:\log.txt" /> 
    </targets> 
    <rules> 
     <logger name="File" minlevel="Trace" writeTo="file" /> 
     <logger name="FileNotFound" minlevel="Trace" writeTo="file-404" /> 
    </rules> 
</nlog> 

を助けていません次に私のせいで何

public partial class Test1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     LogManager.ThrowExceptions = true; 
     Logger logger = LogManager.GetLogger("foo"); 

     Logger log = LogManager.GetCurrentClassLogger(); 

     log.Error("some test"); 
     logger.Error("some test 2"); 
    } 
} 

...私は以下のページを実行し、何も起こりませんか?ありがとうございました!

答えて

1

<logger>name、その属性は、(名前の)フィルタである

ですから、これは、ファイルにすべてを書きます名前の「ファイル」と「するFileNotFound」とロガーになりまし

をフィルタリング

<logger name="*" minlevel="Trace" writeTo="file" /> 

別のオプションは、C#で名前付きロガーを使用することで、その代わりに

Logger log = LogManager.GetCurrentClassLogger(); 

使用

Logger log = LogManager.GetLogger("FileNotFound"); 

次に、あなたは私が<ターゲット名= "ファイル" XSIを試してみましたコンフィグ

0

出力ディレクトリにIISユーザーが書き込むことはできない可能性があります。 「ログ」のようにウェブサイトに関連する出力ディレクトリを使用してみてください。

+0

<logger name="FileNotFound" ..>を使用することができます。type =ファイル名を "ファイル" = "$ {BASEDIR}/App_Dataに/ログ/ WebSiteLog - $ {shortdate} .log "でも動作しません – ihorko

関連する問題