You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@logging.apache.org by ca...@apache.org on 2007/07/26 08:41:52 UTC
svn commit: r559716 [3/20] - in /logging/site/trunk/docs/log4net: ./ css/
images/ images/logos/ release/ release/howto/ release/manual/ src/
src/release/ src/release/howto/ src/release/manual/ src/stylesheets/
stylesheets/
Added: logging/site/trunk/docs/log4net/release/config-examples.html
URL: http://svn.apache.org/viewvc/logging/site/trunk/docs/log4net/release/config-examples.html?view=auto&rev=559716
==============================================================================
--- logging/site/trunk/docs/log4net/release/config-examples.html (added)
+++ logging/site/trunk/docs/log4net/release/config-examples.html Wed Jul 25 23:41:40 2007
@@ -0,0 +1,1193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+
+
+
+
+
+
+
+<html>
+ <head>
+ <title>Apache log4net -
+ Apache log4net: Config Examples</title>
+ <style type="text/css" media="all">
+ @import url("../css/maven-base.css");
+ @import url("../css/maven-theme.css");
+ @import url("../css/site.css");
+ </style>
+ <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
+ <meta name="author" content="
+ Nicko Cadell" />
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ </head>
+ <body class="composite">
+ <div id="banner">
+ <a href="http://logging.apache.org/" id="bannerLeft">
+
+ <img src="../images/ls-logo.jpg" alt="" />
+
+ </a>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="breadcrumbs">
+
+
+
+
+
+
+
+ <div class="xleft">
+ Last Published: 07/26/2007
+ |
+ <a href="http://www.apache.org/">Apache</a>
+ >
+
+ <a href="http://logging.apache.org/">Logging Services</a>
+ >
+
+ <a href="../">log4net</a>
+ </div>
+ <div class="xright">
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ <div id="leftColumn">
+ <div id="navcolumn">
+
+
+
+
+
+
+
+ <h5>Get log4net</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../download.html">Download</a>
+ </li>
+
+ <li class="none">
+ <a href="../changes-report.html">Changes</a>
+ </li>
+
+ <li class="none">
+ <a href="../license.html">License</a>
+ </li>
+ </ul>
+ <h5>About log4net</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../index.html">What is log4net?</a>
+ </li>
+
+ <li class="none">
+ <a href="../faq.html">FAQ</a>
+ </li>
+
+ <li class="none">
+ <a href="../roadmap.html">Roadmap</a>
+ </li>
+ </ul>
+ <h5>Community</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../mail-lists.html">Mailing Lists</a>
+ </li>
+
+ <li class="none">
+ <a href="../issue-tracking.html">Issue Tracking</a>
+ </li>
+ </ul>
+ <h5>Development</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../source-repository.html">Repository</a>
+ </li>
+
+ <li class="none">
+ <a href="../integration.html">Continuous Integration</a>
+ </li>
+ </ul>
+ <h5>Documentation</h5>
+ <ul>
+
+ <li class="none">
+ <a href="../release/manual/introduction.html">Introduction</a>
+ </li>
+ </ul>
+ <h5>Apache</h5>
+ <ul>
+
+ <li class="none">
+ <a href="http://www.apache.org">Home</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+ </li>
+
+ <li class="none">
+ <a href="http://www.apachecon.com">Conferences</a>
+ </li>
+ </ul>
+ <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+ <img alt="Built by Maven" src="../images/logos/maven-feather.png"></img>
+ </a>
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div id="bodyColumn">
+ <div id="contentBox">
+
+
+
+
+ <meta name="keywords" content="building log4net, log4net"></meta>
+
+
+ <a name="log4net Config Examples"></a><div class="section"><h2>log4net Config Examples</h2>
+
+ <sectionMenu name="Contents"></sectionMenu>
+
+ <a name="Overview"></a><div class="section"><h2>Overview</h2>
+ <p>
+ This document presents example configurations for the built-in appenders.
+ These configurations are designed to work with the
+ <span class="code">log4net.Config.DOMConfigurator</span> and the
+ <span class="code">log4net.Repository.Hierarchy.Hierarchy</span>.
+ </p>
+ <p>
+ These examples are by no means exhaustive configurations for the appenders.
+ For a full list of the parameters that can be specified to each appender and
+ more details on each options see the SDK documentation for the appender.
+ </p>
+ </div>
+
+ <a name="AdoNetAppender"></a><div class="section"><h2>AdoNetAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.AdoNetAppender.html">log4net.Appender.AdoNetAppender</a>.
+ </p>
+ <p>
+ The configuration of the <span class="code">AdoNetAppender</span> depends on the
+ provider selected for the target database. Here are some examples.
+ </p>
+ <a name="MS SQL Server"></a><div class="section"><h2>MS SQL Server</h2>
+ <p>
+ The following example shows how to configure the <span class="code">AdoNetAppender</span>
+ to log messages to a SQL Server database. The events are written in batches of 100
+ (<i>BufferSize</i>). The <i>ConnectionType</i> specifies the fully qualified type name
+ for the <span class="code">System.Data.IDbConnection</span> to use to connect to the
+ database. The <i>ConnectionString</i> is database provider specific.
+ The <i>CommandText</i> is either a prepared statement or a stored procedure, in this
+ case it is a prepared statement. Each parameter to the prepared statement or stored procedure
+ is specified with its name, database type and a layout that renders the value for the
+ parameter.
+ </p>
+ <p>
+ The database table definition is:
+ </p>
+ <div class="source"><pre>
+CREATE TABLE [dbo].[Log] (
+ [Id] [int] IDENTITY (1, 1) NOT NULL,
+ [Date] [datetime] NOT NULL,
+ [Thread] [varchar] (255) NOT NULL,
+ [Level] [varchar] (50) NOT NULL,
+ [Logger] [varchar] (255) NOT NULL,
+ [Message] [varchar] (4000) NOT NULL,
+ [Exception] [varchar] (2000) NULL
+)
+ </pre></div>
+ <p>
+ The appender configuration is:
+ </p>
+ <div class="source"><pre>
+<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
+ <bufferSize value="100" />
+ <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <connectionString value="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" />
+ <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
+ <parameter>
+ <parameterName value="@log_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="@log_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="@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>
+ </pre></div>
+ </div>
+
+ <a name="MS Access"></a><div class="section"><h2>MS Access</h2>
+ <p>
+ This example shows how to write events to an Access Database.
+ </p>
+ <div class="source"><pre>
+<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
+ <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\log\access.mdb;User Id=;Password=;" />
+ <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
+ <parameter>
+ <parameterName value="@log_date" />
+ <dbType value="String" />
+ <size value="255" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date" />
+ </layout>
+ </parameter>
+ <parameter>
+ <parameterName value="@thread" />
+ <dbType value="String" />
+ <size value="255" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%thread" />
+ </layout>
+ </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="@logger" />
+ <dbType value="String" />
+ <size value="255" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%logger" />
+ </layout>
+ </parameter>
+ <parameter>
+ <parameterName value="@message" />
+ <dbType value="String" />
+ <size value="1024" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%message" />
+ </layout>
+ </parameter>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="Oracle9i"></a><div class="section"><h2>Oracle9i</h2>
+ <p>
+ This example shows how to write events to an Oracle9i Database.
+ </p>
+ <p>
+ The database table definition is:
+ </p>
+ <div class="source"><pre>
+create table log (
+ Datetime timestamp(3),
+ Thread varchar2(255),
+ Log_Level varchar2(255),
+ Logger varchar2(255),
+ Message varchar2(4000)
+ );
+ </pre></div>
+ <p>
+ The appender configuration is:
+ </p>
+ <div class="source"><pre>
+<appender name="AdoNetAppender_Oracle" type="log4net.Appender.AdoNetAppender">
+ <connectionType value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <connectionString value="data source=[mydatabase];User ID=[user];Password=[password]" />
+ <commandText value="INSERT INTO Log (Datetime,Thread,Log_Level,Logger,Message) VALUES (:log_date, :thread, :log_level, :logger, :message)" />
+ <bufferSize value="128" />
+ <parameter>
+ <parameterName value=":log_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=":log_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=":message" />
+ <dbType value="String" />
+ <size value="4000" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%message" />
+ </layout>
+ </parameter>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="Oracle8i"></a><div class="section"><h2>Oracle8i</h2>
+ <p>
+ This example shows how to write events to an Oracle8i Database.
+ </p>
+ <p>
+ The database table definition is:
+ </p>
+ <div class="source"><pre>
+CREATE TABLE CSAX30.LOG
+(
+ THREAD VARCHAR2(255),
+ LOG_LEVEL VARCHAR2(255),
+ LOGGER VARCHAR2(255),
+ MESSAGE VARCHAR2(4000)
+)
+TABLESPACE CSAX30D LOGGING
+ </pre></div>
+ <p>
+ The appender configuration is:
+ </p>
+ <div class="source"><pre>
+<appender name="AdoNetAppender_Oracle" type="log4net.Appender.AdoNetAppender">
+ <connectionType value ="System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <connectionString value="data source=<dsname>;User ID=<userid>;Password=<password>" />
+ <commandText value="INSERT INTO Log (Log_Level,Logger,Message) VALUES (:log_level, :logger, :message)" />
+ <bufferSize value="250" />
+ <parameter>
+ <parameterName value=":log_level" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%level" />
+ </layout>
+ </parameter>
+ <parameter>
+ <parameterName value=":logger" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%logger" />
+ </layout>
+ </parameter>
+ <parameter>
+ <parameterName value=":message" />
+ <dbType value="String" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%message" />
+ </layout>
+ </parameter>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="IBM DB2"></a><div class="section"><h2>IBM DB2</h2>
+ <p>
+ This example shows how to write events to an IBM DB2 8.2 Database.
+ The following syntax should also work with older DB2 database servers.
+ </p>
+ <p>
+ The database table definition is:
+ </p>
+ <div class="source"><pre>
+CREATE TABLE "myschema.LOG" (
+ "ID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (
+ START WITH +1
+ INCREMENT BY +1
+ MINVALUE +1
+ MAXVALUE +2147483647
+ NO CYCLE
+ NO CACHE
+ NO ORDER
+ ),
+ "DATE" TIMESTAMP NOT NULL,
+ "THREAD" VARCHAR(255) NOT NULL,
+ "LEVEL" VARCHAR(500) NOT NULL,
+ "LOGGER" VARCHAR(255) NOT NULL,
+ "MESSAGE" VARCHAR(4000) NOT NULL,
+ "EXCEPTION" VARCHAR(2000)
+)
+IN "LRGTABLES";
+ </pre></div>
+ <p>
+ The appender configuration is:
+ </p>
+ <div class="source"><pre>
+<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
+ <bufferSize value="100" />
+ <connectionType value="IBM.Data.DB2.DB2Connection,IBM.Data.DB2, Version=8.1.2.1" />
+ <connectionString value="server=192.168.0.0;database=dbuser;user Id=username;password=password;persist security info=true" />
+ <commandText value="INSERT INTO myschema.Log (Date,Thread,Level,Logger,Message,Exception) VALUES (@log_date,@thread,@log_level,@logger,@message,@exception)" />
+ <parameter>
+ <parameterName value="@log_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="@log_level" />
+ <dbType value="String" />
+ <size value="500" />
+ <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="@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>
+ </pre></div>
+ </div>
+
+
+ <a name="SQLite"></a><div class="section"><h2>SQLite</h2>
+ <p>
+ This example shows how to write events to a SQLite Database.
+ This was tested against v0.21 of the
+ <a href="http://sourceforge.net/projects/adodotnetsqlite">SQLite .NET provider</a>.
+ </p>
+ <p>
+ SQLite doesn't have strongly-typed columns or field lengths but its
+ recommended you still include this information for readability.
+ The database table definition is:
+ </p>
+ <div class="source"><pre>
+CREATE TABLE Log (
+ LogId INTEGER PRIMARY KEY,
+ Date DATETIME NOT NULL,
+ Level VARCHAR(50) NOT NULL,
+ Logger VARCHAR(255) NOT NULL,
+ Message TEXT DEFAULT NULL
+);
+ </pre></div>
+ <p>
+ The appender configuration is:
+ </p>
+ <div class="source"><pre>
+<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
+ <bufferSize value="100" />
+ <connectionType value="Finisar.SQLite.SQLiteConnection, SQLite.NET, Version=0.21.1869.3794, Culture=neutral, PublicKeyToken=c273bd375e695f9c" />
+ <connectionString value="Data Source=c:\\inetpub\\wwwroot\\logs\\log4net.db;Version=3;" />
+ <commandText value="INSERT INTO Log (Date, Level, Logger, Message) VALUES (@Date, @Level, @Logger, @Message)" />
+ <parameter>
+ <parameterName value="@Date" />
+ <dbType value="DateTime" />
+ <layout type="log4net.Layout.RawTimeStampLayout" />
+ </parameter>
+ <parameter>
+ <parameterName value="@Level" />
+ <dbType value="String" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%level" />
+ </layout>
+ </parameter>
+ <parameter>
+ <parameterName value="@Logger" />
+ <dbType value="String" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%logger" />
+ </layout>
+ </parameter>
+ <parameter>
+ <parameterName value="@Message" />
+ <dbType value="String" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%message" />
+ </layout>
+ </parameter>
+</appender>
+ </pre></div>
+ </div>
+
+ </div>
+
+
+ <a name="AspNetTraceAppender"></a><div class="section"><h2>AspNetTraceAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.AspNetTraceAppender.html">log4net.Appender.AspNetTraceAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">AspNetTraceAppender</span>
+ to log messages to the ASP.NET TraceContext. The messages are written to the
+ <span class="code">System.Web.TraceContext.Write</span> method if they are below
+ level <span class="code">WARN</span>. If they are <span class="code">WARN</span> or above they are written to the
+ <span class="code">System.Web.TraceContext.Warn</span> method.
+ </p>
+ <div class="source"><pre>
+<appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="BufferingForwardingAppender"></a><div class="section"><h2>BufferingForwardingAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.BufferingForwardingAppender.html">log4net.Appender.BufferingForwardingAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">BufferingForwardingAppender</span>
+ to buffer 100 messages before delivering them to the <i>ConsoleAppender</i>.
+ </p>
+ <div class="source"><pre>
+<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
+ <bufferSize value="100"/>
+ <appender-ref ref="ConsoleAppender" />
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to deliver only significant events. A <span class="code">LevelEvaluator</span>
+ is specified with a threshold of <span class="code">WARN</span>. This means that the events will only
+ be delivered when a message with level of <span class="code">WARN</span> or higher level is logged.
+ Up to 512 (<i>BufferSize</i>) previous messages of any level will also be delivered to provide context
+ information. Messages not sent will be discarded.
+ </p>
+ <div class="source"><pre>
+<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
+ <bufferSize value="512" />
+ <lossy value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="WARN"/>
+ </evaluator>
+ <appender-ref ref="ConsoleAppender" />
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="ColoredConsoleAppender"></a><div class="section"><h2>ColoredConsoleAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.ColoredConsoleAppender.html">log4net.Appender.ColoredConsoleAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">ColoredConsoleAppender</span>
+ to log messages to the console. By default the messages are sent to the console
+ standard output stream. This example shows how to highlight error messages.
+ </p>
+ <div class="source"><pre>
+<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
+ <mapping>
+ <level value="ERROR" />
+ <foreColor value="White" />
+ <backColor value="Red, HighIntensity" />
+ </mapping>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to colorize multiple levels.
+ </p>
+ <div class="source"><pre>
+<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
+ <mapping>
+ <level value="ERROR" />
+ <foreColor value="White" />
+ <backColor value="Red, HighIntensity" />
+ </mapping>
+ <mapping>
+ <level value="DEBUG" />
+ <backColor value="Green" />
+ </mapping>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="ConsoleAppender"></a><div class="section"><h2>ConsoleAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.ConsoleAppender.html">log4net.Appender.ConsoleAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">ConsoleAppender</span>
+ to log messages to the console. By default the messages are sent to the console
+ standard output stream.
+ </p>
+ <div class="source"><pre>
+<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to direct the log messages to the console error stream.
+ </p>
+ <div class="source"><pre>
+<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
+ <target value="Console.Error" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="EventLogAppender"></a><div class="section"><h2>EventLogAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.EventLogAppender.html">log4net.Appender.EventLogAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">EventLogAppender</span> to log
+ to the <i>Application</i> event log on the local machine using the
+ event <i>Source</i> of the <span class="code">AppDomain.FriendlyName</span>.
+ </p>
+ <div class="source"><pre>
+<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to configure the <span class="code">EventLogAppender</span> to
+ use a specific event <i>Source</i>.
+ </p>
+ <div class="source"><pre>
+<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
+ <applicationName value="MyApp" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ For more information on how to setup the event log to allow the
+ <span class="code">EventLogAppender</span> to write to it, see the
+ FAQ: <a href="faq.html#trouble-EventLog">Why doesn't the EventLogAppender work?</a>.
+ </p>
+ </div>
+
+ <a name="FileAppender"></a><div class="section"><h2>FileAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.FileAppender.html">log4net.Appender.FileAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">FileAppender</span>
+ to write messages to a file. The file specified is <i>log-file.txt</i>. The file will
+ be appended to rather than overwritten each time the logging process starts.
+ </p>
+ <div class="source"><pre>
+<appender name="FileAppender" type="log4net.Appender.FileAppender">
+ <file value="log-file.txt" />
+ <appendToFile value="true" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to configure the file name to write to using
+ an environment variable <i>TMP</i>. The encoding to use to write
+ to the file is also specified.
+ </p>
+ <div class="source"><pre>
+<appender name="FileAppender" type="log4net.Appender.FileAppender">
+ <file value="${TMP}\log-file.txt" />
+ <appendToFile value="true" />
+ <encoding value="unicodeFFFE" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to configure the appender to use the minimal locking
+ model that allows multiple processes to write to the same file.
+ </p>
+ <div class="source"><pre>
+<appender name="FileAppender" type="log4net.Appender.FileAppender">
+ <file value="${TMP}\log-file.txt" />
+ <appendToFile value="true" />
+ <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="ForwardingAppender"></a><div class="section"><h2>ForwardingAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.ForwardingAppender.html">log4net.Appender.ForwardingAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">ForwardingAppender</span>.
+ The forwarding appender allows a set of constraints to be used to decorate an appender.
+ In this example the <i>ConsoleAppender</i> is decorated with a <i>Threshold</i> of
+ level <span class="code">WARN</span>. This means that an event directed to the <i>ConsoleAppender</i>
+ directly will be logged regardless of its level, but an event directed to the <i>ForwardingAppender</i>
+ will only be passed on to the <i>ConsoleAppender</i> if its level is <span class="code">WARN</span>
+ or higher. This appender is used only in special circumstances.
+ </p>
+ <div class="source"><pre>
+<appender name="ForwardingAppender" type="log4net.Appender.ForwardingAppender" >
+ <threshold value="WARN"/>
+ <appender-ref ref="ConsoleAppender" />
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="MemoryAppender"></a><div class="section"><h2>MemoryAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.MemoryAppender.html">log4net.Appender.MemoryAppender</a>.
+ </p>
+ <p>
+ It is unlikely that the <span class="code">MemoryAppender</span> will be configured
+ using a config file, but if you want to do it here's how.
+ </p>
+ <div class="source"><pre>
+<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
+ <onlyFixPartialEventData value="true" />
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="NetSendAppender"></a><div class="section"><h2>NetSendAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.NetSendAppender.html">log4net.Appender.NetSendAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">NetSendAppender</span>
+ to deliver messages to a specific user's screen. As this appender is typically only
+ used for important notifications a <i>Threshold</i> of level <span class="code">Error</span>
+ is specified. This example delivers the messages to the user <i>nicko</i> on the
+ machine <i>SQUARE</i>. However things are not always straight forward using the Windows
+ Messenger Service, one possible outcome using this configuration is that the <i>Server</i>
+ will broadcast looking for a WINS server which it will then ask to deliver the message
+ to the <i>Recipient</i>, the WINS server will deliver it to the first terminal that the
+ user logged in from.
+ </p>
+ <div class="source"><pre>
+<appender name="NetSendAppender" type="log4net.Appender.NetSendAppender">
+ <threshold value="ERROR" />
+ <server value="SQUARE" />
+ <recipient value="nicko" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="OutputDebugStringAppender"></a><div class="section"><h2>OutputDebugStringAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.OutputDebugStringAppender.html">log4net.Appender.OutputDebugStringAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">OutputDebugStringAppender</span>
+ to write logging messages to the <span class="code">OutputDebugString</span> API.
+ </p>
+ <div class="source"><pre>
+<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender" >
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="RemotingAppender"></a><div class="section"><h2>RemotingAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.RemotingAppender.html">log4net.Appender.RemotingAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">RemotingAppender</span>
+ to deliver logging events to a specified <i>Sink</i> (in this example
+ the sink is <span class="code">tcp://localhost:8085/LoggingSink</span>).
+ In this example the events are delivered in blocks of 95 events because
+ of the <i>BufferSize</i>. No events are discarded. The <i>OnlyFixPartialEventData</i>
+ option allows the appender to ignore certain logging event properties that
+ can be very slow to generate (e.g. the calling location information).
+ </p>
+ <div class="source"><pre>
+<appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
+ <sink value="tcp://localhost:8085/LoggingSink" />
+ <lossy value="false" />
+ <bufferSize value="95" />
+ <onlyFixPartialEventData value="true" />
+</appender>
+ </pre></div>
+ <p>
+ This example configures the <span class="code">RemotingAppender</span> to
+ deliver the events only when an event with level <span class="code">ERROR</span>
+ or above is logged. When the events are delivered, up to 200 (<i>BufferSize</i>)
+ previous events (regardless of level) will be delivered to provide context.
+ Events not delivered will be discarded.
+ </p>
+ <div class="source"><pre>
+<appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
+ <sink value="tcp://localhost:8085/LoggingSink" />
+ <lossy value="true" />
+ <bufferSize value="200" />
+ <onlyFixPartialEventData value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="ERROR"/>
+ </evaluator>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="RollingFileAppender"></a><div class="section"><h2>RollingFileAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.RollingFileAppender.html">log4net.Appender.RollingFileAppender</a>.
+ </p>
+ <p>
+ The <span class="code">RollingFileAppender</span> builds on the
+ <span class="code">FileAppender</span> and has the same options
+ as that appender.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">RollingFileAppender</span>
+ to write to the file <i>log.txt</i>. The file written to will always be called <i>log.txt</i>
+ because the <i>StaticLogFileName</i> param is specified. The file will be rolled based on
+ a size constraint (<i>RollingStyle</i>). Up to 10 (<i>MaxSizeRollBackups</i>)
+ old files of 100 KB each (<i>MaximumFileSize</i>) will be kept. These rolled files will be
+ named: <i>log.txt.1</i>, <i>log.txt.2</i>, <i>log.txt.3</i>, etc...
+ </p>
+ <div class="source"><pre>
+<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="log.txt" />
+ <appendToFile value="true" />
+ <rollingStyle value="Size" />
+ <maxSizeRollBackups value="10" />
+ <maximumFileSize value="100KB" />
+ <staticLogFileName value="true" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example show how to configure the <span class="code">RollingFileAppender</span>
+ to roll log files on a date period. This example will roll the log file every minute!
+ To change the rolling period adjust the <span class="code">DatePattern</span> value.
+ For example, a date pattern of <span class="code">"yyyyMMdd"</span> will roll every day.
+ See <span class="code">System.Globalization.DateTimeFormatInfo</span> for a list of available patterns.
+ </p>
+ <div class="source"><pre>
+<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="logfile" />
+ <appendToFile value="true" />
+ <rollingStyle value="Date" />
+ <datePattern value="yyyyMMdd-HHmm" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example show how to configure the <span class="code">RollingFileAppender</span>
+ to roll log files on a date period and within a date period on file size. For each day
+ only the last 10 files of 1MB will be kept.
+ </p>
+ <div class="source"><pre>
+<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="logfile" />
+ <appendToFile value="true" />
+ <rollingStyle value="Composite" />
+ <datePattern value="yyyyMMdd" />
+ <maxSizeRollBackups value="10" />
+ <maximumFileSize value="1MB" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example show how to configure the <span class="code">RollingFileAppender</span>
+ to roll log files once per program execution. The <span class="code">appendToFile</span>
+ property is set to <span class="code">false</span> to prevent the appender from overwriting
+ the existing files. The <span class="code">maxSizeRollBackups</span> is set to negative
+ 1 to allow an infinite number of backup files. The file size does have to be limited but
+ here it is set to 50 Gigabytes which, if a log file exceeds this size limit during a single
+ run then it will also be rolled.
+ </p>
+ <div class="source"><pre>
+<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
+ <file value="logfile.txt" />
+ <appendToFile value="false" />
+ <rollingStyle value="Size" />
+ <maxSizeRollBackups value="-1" />
+ <maximumFileSize value="50GB" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="SmtpAppender"></a><div class="section"><h2>SmtpAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.SmtpAppender.html">log4net.Appender.SmtpAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">SmtpAppender</span>
+ to deliver log events via SMTP email. The <i>To</i>, <i>From</i>, <i>Subject</i> and
+ <i>SmtpHost</i> are required parameters.
+ This example shows how to deliver only significant events. A <span class="code">LevelEvaluator</span>
+ is specified with a threshold of <span class="code">WARN</span>. This means that an email
+ will be sent for each <span class="code">WARN</span> or higher level message that is logged.
+ Each email will also contain up to 512 (<i>BufferSize</i>) previous messages of any level to
+ provide context. Messages not sent will be discarded.
+ </p>
+ <div class="source"><pre>
+<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
+ <to value="to@domain.com" />
+ <from value="from@domain.com" />
+ <subject value="test logging message" />
+ <smtpHost value="SMTPServer.domain.com" />
+ <bufferSize value="512" />
+ <lossy value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="WARN"/>
+ </evaluator>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows how to configure the <span class="code">SmtpAppender</span>
+ to deliver all messages in emails with 512 (<i>BufferSize</i>) messages per
+ email.
+ </p>
+ <div class="source"><pre>
+<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
+ <to value="to@domain.com" />
+ <from value="from@domain.com" />
+ <subject value="test logging message" />
+ <smtpHost value="SMTPServer.domain.com" />
+ <bufferSize value="512" />
+ <lossy value="false" />
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ <p>
+ This example shows a more verbose formatting layout for the mail messages.
+ </p>
+ <div class="source"><pre>
+<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
+ <to value="to@domain.com" />
+ <from value="from@domain.com" />
+ <subject value="test logging message" />
+ <smtpHost value="SMTPServer.domain.com" />
+ <bufferSize value="512" />
+ <lossy value="false" />
+ <evaluator type="log4net.Core.LevelEvaluator,log4net">
+ <threshold value="WARN" />
+ </evaluator>
+ <layout type="log4net.Layout.PatternLayout,log4net">
+ <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="SmtpPickupDirAppender"></a><div class="section"><h2>SmtpPickupDirAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.SmtpPickupDirAppender.html">log4net.Appender.SmtpPickupDirAppender</a>.
+ </p>
+ <p>
+ The <span class="code">SmtpPickupDirAppender</span> is configured similarly
+ to the <span class="code">SmtpAppender</span>. The only difference is that rather
+ than specify a <i>SmtpHost</i> parameter a <i>PickupDir</i> must be specified.
+ </p>
+ <p>
+ The <i>PickupDir</i> parameter is a path that must exist and the code executing the
+ appender must have permission to create new files and write to them in this directory.
+ The path is relative to the application's base directory (<span class="code">AppDomain.BaseDirectory</span>).
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">SmtpPickupDirAppender</span>
+ to deliver log events via SMTP email. The <i>To</i>, <i>From</i>, <i>Subject</i> and
+ <i>PickupDir</i> are required parameters.
+ This example shows how to deliver only significant events. A <span class="code">LevelEvaluator</span>
+ is specified with a threshold of <span class="code">WARN</span>. This means that an email
+ will be sent for each <span class="code">WARN</span> or higher level message that is logged.
+ Each email will also contain up to 512 (<i>BufferSize</i>) previous messages of any level to
+ provide context. Messages not sent will be discarded.
+ </p>
+ <div class="source"><pre>
+<appender name="SmtpPickupDirAppender" type="log4net.Appender.SmtpPickupDirAppender">
+ <to value="to@domain.com" />
+ <from value="from@domain.com" />
+ <subject value="test logging message" />
+ <pickupDir value="C:\SmtpPickup" />
+ <bufferSize value="512" />
+ <lossy value="true" />
+ <evaluator type="log4net.Core.LevelEvaluator">
+ <threshold value="WARN"/>
+ </evaluator>
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="TraceAppender"></a><div class="section"><h2>TraceAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.TraceAppender.html">log4net.Appender.TraceAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">TraceAppender</span>
+ to log messages to the <span class="code">System.Diagnostics.Trace</span> system.
+ This is the tracing system supplied with the .net base class libraries.
+ See the MSDN documentation for the <span class="code">System.Diagnostics.Trace</span>
+ class for more details on how to configure the trace system.
+ </p>
+ <div class="source"><pre>
+<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
+ <layout type="log4net.Layout.PatternLayout">
+ <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+
+ <a name="UdpAppender"></a><div class="section"><h2>UdpAppender</h2>
+ <p>
+ For full details see the SDK Reference entry: <a href="sdk/log4net.Appender.UdpAppender.html">log4net.Appender.UdpAppender</a>.
+ </p>
+ <p>
+ The following example shows how to configure the <span class="code">UdpAppender</span>
+ to send events to a <i>RemoteAddress</i> on the specified <i>RemotePort</i>.
+ </p>
+ <div class="source"><pre>
+<appender name="UdpAppender" type="log4net.Appender.UdpAppender">
+ <localPort value="8080" />
+ <remoteAddress value="224.0.0.1" />
+ <remotePort value="8080" />
+ <layout type="log4net.Layout.PatternLayout, log4net">
+ <conversionPattern value="%-5level %logger [%property{NDC}] - %message%newline" />
+ </layout>
+</appender>
+ </pre></div>
+ </div>
+ </div>
+
+
+
+ </div>
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ <div id="footer">
+ <div class="xright">©
+ 2007
+
+ Apache Software Foundation
+
+
+
+
+
+
+
+ </div>
+ <div class="clear">
+ <hr/>
+ </div>
+ </div>
+ </body>
+</html>
Propchange: logging/site/trunk/docs/log4net/release/config-examples.html
------------------------------------------------------------------------------
svn:mime-type = text/html