2015-04-03 76 views
1

我已經嘗試了所有可以在網上找到的獲得log4net與Azure一起工作的東西,但由於大多數文檔都非常過時,所以還沒有運氣。如果任何人有與最新的Azure SDK和Log4Net版本的工作,並可以推動我在正確的方向,將不勝感激。Azure上的Log4Net

看起來好像有很多不同的方法來做到這一點,但我還沒有像其他許多例子所說的那樣,將它追加到表,blob或數據庫中。

+1

請提供您使用的代碼和您收到的任何錯誤。 – paqogomez 2015-04-03 22:12:10

+0

你在哪裏登錄? Azure SQL? – viperguynaz 2015-04-04 01:23:03

回答

2

要使用SQL Azure的或與SQL log4net的在Azure的網站或網頁的角色:

在你的數據庫創建日誌表:

/****** Object: Table [dbo].[Log] Script Date: 4/3/2015 6:32:43 PM 
******/ 
SET ANSI_NULLS OFF 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[Log](
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [Date] [datetime] NULL, 
    [Level] [nvarchar](50) NULL, 
    [Message] [nvarchar](4000) NULL, 
    [Exception] [nvarchar](4000) NULL, 
    [RemoteHost] [nvarchar](50) NULL, 
    [Cookie] [nvarchar](4000) NULL, 
    [Url] [nvarchar](200) NULL, 
    [QueryString] [nvarchar](1000) NULL, 
    [Referrer] [nvarchar](200) NULL, 
    [RequestMethod] [nvarchar](10) NULL, 
    [ScriptPath] [nvarchar](150) NULL, 
    [UserAgent] [nvarchar](1000) NULL, 
    [Domain] [nvarchar](50) NULL, 
    [CustomBlob] [varchar](max) NULL, 
CONSTRAINT [PrimaryKey_11579ccd-53dd-4bcc-a813-cb4cfb7b6b88] PRIMARY KEY CLUSTERED 
(
    [ID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
) 

GO 

SET ANSI_PADDING OFF 
GO 

修改你的web.config文件:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 
    </configSections> 
    <log4net> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="1" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <connectionString value="...[your connectionString]..." /> 
     <commandText value="INSERT INTO Log ([Date],[Level],[Message],[Exception],[RemoteHost],[Cookie],[Url],[QueryString],[Referrer],[RequestMethod],[ScriptPath],[UserAgent],[Domain],[CustomBlob]) VALUES      (@log_date, @log_level, @message, @exception,@remote_host,@cookie,@url,@query_string,@referrer,@request_method,@script_path,@user_agent,@domain,@custom_blob)" /> 
     <parameter> 
     <parameterName value="@log_date" /> 
     <dbType value="DateTime" /> 
     <layout type="log4net.Layout.RawTimeStampLayout" /> 
     </parameter> 
     <parameter> 
     <parameterName value="@log_level" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%level" /> 
     </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="4000" /> 
     <layout type="log4net.Layout.ExceptionLayout" /> 
     </parameter> 
     <parameter> 
     <parameterName value="@remote_host" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{RemoteHost}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@cookie" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{Cookie}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@url" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{Url}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@query_string" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{QueryString}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@referrer" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{Referrer}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@request_method" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{RequestMethod}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@script_path" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{ScriptPath}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@user_agent" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{UserAgent}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@domain" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{Domain}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@custom_blob" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{CustomBlob}" /> 
     </layout> 
     </parameter> 
    </appender> 

    <root> 
     <level value="All" /> 
     <appender-ref ref="AdoNetAppender" /> 
    </root> 
    </log4net> 
+0

您是否發現log4net + azure sql有任何性能問題,以及是否應考慮其他考慮因素?我非常傾向於使用這個,但我想我會問一個已經走過這條路的人。預先感謝您的回覆。 – wintercyborg 2015-07-13 15:48:01

+1

沒有什麼明顯的。您可能還想看看Application Insights - 它具有用於記錄異常和其他數據的良好功能。 – viperguynaz 2015-07-13 17:24:59

+0

感謝您的回覆和建議! – wintercyborg 2015-07-13 18:01:46