[prev in list] [next in list] [prev in thread] [next in thread]
List: log4net-user
Subject: Re: Log4net: context only for exception
From: Ron Grabowski <rongrabowski () yahoo ! com>
Date: 2009-06-18 21:18:58
Message-ID: 507476.48725.qm () web30503 ! mail ! mud ! yahoo ! com
[Download RAW message or body]
You can make two different appenders: one that handles DEBUG statements and one that \
handles ERROR and higher messages or you could change the layout based on the level \
of the message:
<layout type="ConsoleApplication1.LevelPatternLayout, ConsoleApplication1">
<levelConversionPattern>
<level value="DEBUG" />
<conversionPattern value="%level - %message%newline" />
</levelConversionPattern>
<levelConversionPattern>
<level value="ERROR" />
<conversionPattern value="%level - %logger - %property{ErrorUserId} - \
%message%newline" /> </levelConversionPattern>
</layout>
public class LevelPatternLayout : PatternLayout
{
private readonly Hashtable m_levelToPatternLayout = new Hashtable();
public override void Format(TextWriter writer, LoggingEvent loggingEvent)
{
var patternLayout = m_levelToPatternLayout[loggingEvent.Level] as \
PatternLayout;
if (patternLayout == null)
{
base.Format(writer, loggingEvent);
}
else
{
patternLayout.Format(writer, loggingEvent);
}
}
public void AddLevelConversionPattern(LevelConversionPattern levelLayout)
{
m_levelToPatternLayout[levelLayout.Level] = new \
PatternLayout(levelLayout.ConversionPattern); }
}
public class LevelConversionPattern
{
public Level Level { get; set; }
public string ConversionPattern { get; set; }
}
----- Original Message ----
From: koger <karsten@f-kousgaard.dk>
To: log4net-user@logging.apache.org
Sent: Thursday, June 18, 2009 8:27:26 AM
Subject: Log4net: context only for exception
Hi
I also posted this question at
http://stackoverflow.com/questions/1011730/log4net-context-only-for-exception
http://stackoverflow.com/questions/1011730/log4net-context-only-for-exception
. But I think this might be a better place. Here is the question:
I'm looking for a way to collect a set of data, that will only be used for
debugging, the data should only be logged if I log an exception. AFAIK it
can happend when ILog.Error, Fatal or Debug with an exception argument when
logging other data with an exception, the data shouldn't be logged.
I plan to use the GlobalContext or ThreadContext for building the dataset.
My idea was to hook into Log4Net and attach to an event I would imagine, to
alter the message pattern to include contexts. But I can't find any event
that would help me, perhaps there also might be a easier way?
What do you think about the overall design of this, am I on the right track
or am I missing something?
If this way is good, how can I implement it?
--
View this message in context: \
http://www.nabble.com/Log4net%3A-context-only-for-exception-tp24091804p24091804.html \
Sent from the Log4net - Users mailing list archive at Nabble.com.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic