Just in case it matters (especialy since you're using C#, which is 
case-sensitive), in your ILog statements, "warn" is lowercase, while the others 
are mixed case.

 

RobinS.

 

From: Knittel Bruno [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 06, 2008 12:38 AM
To: Log4NET User
Subject: AW: log4net configuration withtou Xml file

 

Hi Everyone,

 

    I finally managed to configure log4net through the code, even using 
multiple appenders.

    Was not so hard, I just took a look at how the BasicConfigurator, 
XmlConfigurator and the units tests were written.

 

    Follows the piece of code I just ran. It creates a ConsoleAppender as well 
as a FileAppender.

    Hope it can help someone.

 

Regards,

 

Bruno

 

using System;
using System.Collections.Generic;
using System.Windows.Forms;

 

using log4net;
using log4net.Appender;
using log4net.Repository;
using log4net.Repository.Hierarchy;

 

namespace log4nettest
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            ConfigureLog();
            ILog lLog = LogManager.GetLogger(typeof(Program));
            lLog.Debug("Debug");
            lLog.Error("Error");
            lLog.Fatal("Fatal");
            lLog.Info("Info");
            lLog.Warn("warn");
        }

 

        private static ConsoleAppender GetConsoleAppender()
        {
            ConsoleAppender lAppender = new ConsoleAppender();
            lAppender.Name = "Console";
            lAppender.Layout = new 
log4net.Layout.PatternLayout("%date{dd-MM-yyyy HH:mm:ss,fff} %5level [%2thread] 
%message (%logger{1}:%line)%n");
            lAppender.Threshold = log4net.Core.Level.Error;
            lAppender.ActivateOptions();

 

            return lAppender;
        }

 

        private static FileAppender GetFileAppender()
        {
            FileAppender lAppender = new FileAppender();
            lAppender.Name = "File";
            lAppender.AppendToFile = true;
            lAppender.File = "log.txt";
            lAppender.Layout = new 
log4net.Layout.PatternLayout("%date{dd-MM-yyyy HH:mm:ss,fff} %5level [%2thread] 
%message (%logger{1}:%line)%n");
            lAppender.Threshold = log4net.Core.Level.All;
            lAppender.ActivateOptions();

 

            return lAppender;
        }

 

        private static void ConfigureLog()
        {
            Logger root;
            root = ((Hierarchy)LogManager.GetRepository()).Root;
            root.AddAppender(GetConsoleAppender());
            root.AddAppender(GetFileAppender());
            root.Repository.Configured = true;
        }
    }
}

 

 

Bruker BioSpin GmbH 

________________________________

Bruno Knittel
Automation Development

Bruker BioSpin GmbH 
Silberstreifen
76287 Rheinstetten 
Germany

 Phone: +49 721 5161-90064
 Fax:     +49 721 5161-494

  [EMAIL PROTECTED]
  www.bruker-biospin.com <http://www.bruker-biospin.com/> 

________________________________

Bruker BioSpin GmbH: Sitz der Gesellschaft/Registered Office: Rheinstetten, HRB 
102368 Amtsgericht Mannheim
Geschäftsführer/Managing Directors: Dr. Bernd Gewiese, Dr. Dieter Schmalbein, 
Dr. Gerhard Roth

Diese E-Mail und alle Anlagen können Betriebs- oder Geschäftsgeheimnisse, oder 
sonstige vertrauliche Informationen enthalten. Sollten Sie diese E-Mail 
irrtümlich erhalten haben, ist Ihnen eine Kenntnisnahme des Inhalts, eine 
Vervielfältigung oder Weitergabe der E-Mail und aller Anlagen ausdrücklich 
untersagt. Bitte benachrichtigen Sie den Absender und löschen/vernichten Sie 
die empfangene E-Mail und alle Anlagen.
Vielen Dank. 

This message and any attachments may contain trade secrets or privileged, 
undisclosed or otherwise confidential information. If you have received this 
e-mail in error, you are hereby notified that any review, copying or 
distribution of it and its attachments is strictly prohibited. Please inform 
the sender immediately and delete/destroy the original message and any copies.
Thank you.

        -----Ursprüngliche Nachricht-----
        Von: Radovan Raszka [mailto:[EMAIL PROTECTED] 
        Gesendet: Dienstag, 6. Mai 2008 08:00
        An: Log4NET User
        Betreff: RE: log4net configuration withtou Xml file

        Hello Bruno,

        configuring log4net directly from the code is my dream too, but 
documentation did not give any example how to do this.

        It is simple if you need to use the only appender - use 
BasicConfigurator:

         

           log4net.Appender.FileAppender fa = new 
log4net.Appender.FileAppender();
           fa.AppendToFile = false;
           fa.File = "ipagent.log";
           fa.Layout = new log4net.Layout.PatternLayout("%date{dd-MM-yyyy 
HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n");
           fa.Threshold = log4net.Core.Level.Debug;
           fa.ActivateOptions();
           log4net.Config.BasicConfigurator.Configure(fa);

         

        I have this tested and it works well. But when configuration is more 
complex, I didn't found a way how to make logging to work. Look at this message 
http://www.mail-archive.com/log4net-user@logging.apache.org/msg03890.html, 
there you find a piece of my (nonworking) code.

        If you'll be able to find what is missing there, let me know

         

        Radovan Raszka

                
________________________________


                From: Knittel Bruno [mailto:[EMAIL PROTECTED] 
                Sent: Monday, May 05, 2008 9:32 AM
                To: log4net-user@logging.apache.org
                Subject: log4net configuration withtou Xml file

                Hello Everyone,

                 

                    I need to be able to configure log4net without the 
XmlConfigurator, that is directly from my code.

                    I am aware of the BasicConfigurator but one appender is not 
enough for me.

                 

                    I would like to be able to create some new appenders, 
remove (or disable) them and change their

                    log threshold at runtime. I am working under Compact 
Framework 2.0.

                 

                    I already took a look at this ( 
http://www.mail-archive.com/log4net-user@logging.apache.org/msg02895.html ) 
mail that gave me many informations,

                    but did not yet found how to create an appender and 
register it not for one logger but for all (and all the ones that will be 
created after I registered my appender).

                 

                    In fact how can I achieve a configuration like the 
following file but programmatically:

                 

                    <configuration>
                 <log4net>  
                  <appender name="TextLogFileAppender" 
type="log4net.Appender.FileAppender" >
                   <file value="log.xml" />
                   <appendToFile value="true" />
                   <layout type="log4net.Layout.XmlLayoutSchemaLog4j" />
                   <param name="Threshold" value="ERROR" />
                  </appender>
                  
                  <appender name="ConsoleErrorAppender" 
type="log4net.Appender.ConsoleAppender">
                   <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%date [%thread] %-5level %logger 
[%ndc] &lt;%property{auth}&gt; - %message%newline" />
                   </layout>
                   <param name="Threshold" value="FATAL" />
                  </appender>
                  
                  <appender name="UdpAppender" 
type="log4net.Appender.UdpAppender">
                   <localPort value="8080" />
                   <remoteAddress value="192.168.1.1" />
                   <remotePort value="8080" />
                   <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
                    <locationInfo value="true" />
                   </layout>
                   <param name="Threshold" value="DEBUG" />
                  </appender>

                 

                  <!-- Setup the root category, add the appenders and set the 
default level -->  
                  <root>
                   <appender-ref ref="TextLogFileAppender" />
                   <appender-ref ref="ConsoleErrorAppender" />
                   <appender-ref ref="UdpAppender" />
                  </root> 
                 </log4net>
                </configuration>

                 

                 

                    Best regards and many thanks in advance for any help,

                 

                    Bruno

                 

Reply via email to