> -----Original Message-----
> From: Chris Jerdonek [mailto:[EMAIL PROTECTED]
> Sent: Thursday, May 08, 2008 7:49 PM
> To: log4net-user@logging.apache.org
> Subject: logging additional message-specific data with AdoNetAppender
> 
> Hi, we've been using log4net for a few months now, and I've been on
this
> list for about the same.  I have a design question.
 
> To implement this, it seems natural to store these additional values
in
> ThreadContext.Properties, and then access them in the Web.config via
(for
> example) %property{msgcode}.
> 
 
> Any thoughts?
> 
> Okay, thanks,
> --Chris
> 

Chris,
We do exactly what you have indicated.  In our programs we set the extra
columns with ThreadContext and GlobalContext properties.  Works pretty
well for us.  Here's our config for the appender:


<appender name="ADONetAppender_SqlServer"
type="log4net.Appender.ADONetAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <!-- <levelMax value="FATAL" /> -->
      </filter>
      <param name="BufferSize" value="1" />
      <param name="ConnectionType"
value="System.Data.SqlClient.SqlConnection, System.Data,
Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <param name="ConnectionString"
value="server=SERVER;database=DATABASE;integrated security=SSPI;" />
      <param name="CommandText" value="INSERT INTO TABLE
([Date],[Thread],[Level],[Logger],[Message],[Exception],[Application_Cat
egory],[Application_Name],[Server_Name],[Carrier_Name],[DataBase_Name],[
Function_Name],[Message_Description]) VALUES (@log_date, @thread,
@log_level, @logger, @message, @exception, @category, @application,
@server, @carrier, @database, @function, @mesgdescription)" />
      <param name="Parameter">
        <param name="ParameterName" value="@log_date" />
        <param name="DbType" value="DateTime" />
        <param name="Layout" type="log4net.Layout.RawTimeStampLayout" />
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@thread" />
        <param name="DbType" value="String" />
        <param name="Size" value="255" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%t" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@log_level" />
        <param name="DbType" value="String" />
        <param name="Size" value="50" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%p" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@logger" />
        <param name="DbType" value="String" />
        <param name="Size" value="255" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%c" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@message" />
        <param name="DbType" value="String" />
        <param name="Size" value="4000" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%m" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@exception" />
        <param name="DbType" value="String" />
        <param name="Size" value="2000" />
        <param name="Layout" type="log4net.Layout.ExceptionLayout">
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@category" />
        <param name="DbType" value="String" />
        <param name="Size" value="100" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{category}" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@application" />
        <param name="DbType" value="String" />
        <param name="Size" value="100" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{application}" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@server" />
        <param name="DbType" value="String" />
        <param name="Size" value="50" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{log4net:HostName}"
/>
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@carrier" />
        <param name="DbType" value="String" />
        <param name="Size" value="100" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{carrier}" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@database" />
        <param name="DbType" value="String" />
        <param name="Size" value="100" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{database}" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@function" />
        <param name="DbType" value="String" />
        <param name="Size" value="100" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%P{function}" />
        </param>
      </param>
      <param name="Parameter">
        <param name="ParameterName" value="@mesgdescription" />
        <param name="DbType" value="String" />
        <param name="Size" value="500" />
        <param name="Layout" type="log4net.Layout.PatternLayout">
          <param name="ConversionPattern" value="%m" />
        </param>
      </param>
    </appender>

==============

Bill Daniels
Green Mountain Consulting, LLC

Reply via email to