ASP.NETプロジェクトでlog4netを動作させることができません。私のweb.configは次のようになります。
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net debug="true">
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="CardGame.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</log4net>
そして私のLogHelperクラスはこれに見えます:
public class LogHelper
{
private static LogHelper _instance = new LogHelper();
private static volatile object _lock = new object();
public ILog Logger;
public static LogHelper Instance
{
get
{
lock (_lock)
{
if (_instance == null)
{
_instance = new LogHelper();
}
}
return _instance;
}
}
private LogHelper()
{
Logger = LogManager.GetLogger(typeof(LogHelper));
Logger.Debug("Debug message");
Logger.Warn("Warn message");
Logger.Error("Error message");
Logger.Fatal("Fatal message");
}
}
私も行を追加しました
log4net.Config.XmlConfigurator.Configure();
global.asax.csのApplication_Startに
ただし、コンストラクターのログはどれも機能せず、なぜ機能しないのかについてのアイデアが不足しています。
アプリを実行しているユーザーがターゲットフォルダーへの書き込み権限を持っていることを確認してください。
私は常にeveryone
プールを追加して再起動することでそのケースをテストします。それが機能する場合は、それが権限の問題であることがわかっています。そうでない場合は、コード/構成を確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加