私はLog4Netを使ってデータベースにログインしていますが、それは簡単なことですが、デバッグするとすべてのログモードが偽であることがわかります。Log4Netのプロパティは常に偽です(おそらく初期化されていません)
私はhere、here、およびhereのソリューションを実装しようとしましたが、いずれも私のために働いていません。
それらのすべて
はどちらか、私は私のAsseblyInfo.cs
で
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "filepath", Watch = true)]
を必要とするか、私は私がしましたlog4net.LogManager.GetLoggers()
を呼び出す前に、私は
log4net.Config.XmlConfigurator.Configure(new FileInfo("filepath"));
を使用することができることを。..基本的には同じことを言いますこれらの両方を試して、さまざまな場所に移動し、スタートアッププロジェクトに入れて、Application_Start()
に入れてみましたが、影響はありませんでした。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "../log4net.config", Watch = true)]
namespace ...
{
public class LogService : ILogService
{
private readonly log4net.ILog _log;
public LogService()
{
log4net.Config.XmlConfigurator.Configure(new FileInfo("../log4net.config"));
_log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
//more stuff
}
}
誰もが私が欠けている何かを見ることができます:
ここに私のlog4net.configファイルが
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\Projects\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="ADOAppender" />
<appender-ref ref="FileAppender" />
</root>
<appender name="FileAppender" type="log4net.Appender.ConsoleAppender">
<file value="C:\Projects\Log.txt"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{ABSOLUTE} [%thread] %level - %message%newline%exception"/>
</layout>
</appender>
<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data"/>
<connectionString value="XXXXXXX"/>
<commandText value="dbo.sp_CreateErrorLog" />
<commandType value="StoredProcedure" />
<parameter>
<parameterName value="@Date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@Thread"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Logger"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger"/>
</layout>
</parameter>
<parameter>
<parameterName value="@User" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{log4net:HostName}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message"/>
</layout>
</parameter>
<parameter>
<parameterName value="@Exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender>
</log4net>
</configuration>
そして、私のクラスのコードですか?私は困惑している。
log4netが提供するログを含めることはできますか? –
ログにはすべてのロギングプロパティが無効になっているだけで、設定ファイルが読み込まれないと思うようになります。 –