我已經找了一個「修復」我的問題幾天沒有,並沒有得到任何地方。基本上,發生的事情是我有一個應用程序寫入數據庫並通過log4Net發送電子郵件。Log4Net與.NET 4.0問題
這裏是我初始化我的日誌對象:
private static readonly log4net.ILog log;
#endregion
static PTSentryService()
{
// Initialize log4net.
log4net.Config.XmlConfigurator.Configure();
log = log4net.LogManager.GetLogger(typeof(PTSentryService));
}
我然後使用LogHelper類搶配置信息,下面是我在我的web.config:
<log4net>
<appender name="ADONetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Data Source=ServerName;Initial Catalog=EventLog;Trusted_Connection=no;User ID=EventLogAdmin;Password=EVLA%dtm" />
<commandText value="INSERT INTO EventLog ([TimeStamp],[SeverityLevel],[LoggerName],[Environment],[ApplicationName],[ApplicationPath],[ServerName],[Message],[ExceptionData]) VALUES (@TimeStamp,@SeverityLevel,@LoggerName,@Environment,@ApplicationName,@ApplicationPath,@ServerName,@Message,@ExceptionData)" />
<parameter>
<parameterName value="@TimeStamp" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@SeverityLevel" />
<dbType value="String" />
<size value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@LoggerName" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@Environment" />
<dbType value="String" />
<size value="4" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{EnvironmentName}" />
</layout>
</parameter>
<parameter>
<parameterName value="@ApplicationName" />
<dbType value="String" />
<size value="128" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{AppName}" />
</layout>
</parameter>
<parameter>
<parameterName value="@ApplicationPath" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{AppPath}" />
</layout>
</parameter>
<parameter>
<parameterName value="@ServerName" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{log4net:HostName}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Message" />
<dbType value="String" />
<size value="-1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@ExceptionData" />
<dbType value="String" />
<size value="-1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{exceptionDetails}" />
</layout>
</parameter>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="[email protected]" />
<from value="[email protected]" />
<subject value="(LOCL) PT Sentry" />
<smtpHost value="group.com" />
<bufferSize value="1" />
<lossy value="false" />
<threshold value="ERROR" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate [%thread] %-5level %logger [%property{log4net:HostName}] - %message%newline%newlineException details:%newline%property{exceptionDetails}" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="ADONetAppender_SqlServer" />
<appender-ref ref="SmtpAppender" />
</root>
發生什麼是ILog
對象(isErrorEnabled等)中的所有屬性都是錯誤的。我知道這是由於配置沒有被正確加載,但是這是來自.Net 3.5項目的複製粘貼作業,我知道它的工作原理。爲了適應4.0,我需要做些什麼改變?
任何信息都非常好,謝謝!
如果這是您的實際數據庫連接字符串,用戶名/密碼和所有......您可能希望對其進行編輯。 –
@Jacob - 無法訪問數據庫(該代碼中不存在該信息)意味着知道用戶名和密碼幾乎是無用的。 –
@Jacob,服務器是不同的,祝你好運,試圖使用這些creds :) –