You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Ron Grabowski (JIRA)" <ji...@apache.org> on 2006/12/13 01:45:22 UTC

[jira] Commented: (LOG4NET-106) TraceAppender : Add switch to disable using logger name as trace category

    [ http://issues.apache.org/jira/browse/LOG4NET-106?page=comments#action_12457971 ] 
            
Ron Grabowski commented on LOG4NET-106:
---------------------------------------

Do you think other users might want to pass in something besides null or the LoggerName?

We could define the Category to be an ITraceAppenderCategory and ship with LoggingNameCategory, NullCategory, UserNameCategory, etc.:

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
 <category type="log4net.Appender.TraceAppender+LoggingNameCategory" />
<layout type="log4net.Layout.SimplePatternLayout" />
</appender>

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
 <category type="log4net.Appender.TraceAppender+UserNameCategory" />
 <layout type="log4net.Layout.SimplePatternLayout" />
</appender>

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<category type="log4net.Appender.TraceAppender+NullCategory" />
 <layout type="log4net.Layout.SimplePatternLayout" />
</appender>

similiar to how the RollingFileAppender supports IDateTime for calculating dates in terms of local time or universal time.

I would just write the 24-ish lines of code and go about my day:

// untested
public class NullCategoryTraceAppender : TraceAppender
{
 private bool nullCategory = false;
 protected override void Append(LoggingEvent loggingEvent)
 {
  if (NullCategory)
  {
   Trace.Write(RenderLoggingEvent(loggingEvent), null);
  }
  else
  {
   Trace.Write(RenderLoggingEvent(loggingEvent), loggingEvent.LoggerName);
  }
  if (ImmediateFlush)
  {
   Trace.Flush();
  }
 }
 public bool NullCategory
 {
  get { return nullCategory; }
  set { nullCategory = value; }
 }
}

> TraceAppender : Add switch to disable using logger name as trace category
> -------------------------------------------------------------------------
>
>                 Key: LOG4NET-106
>                 URL: http://issues.apache.org/jira/browse/LOG4NET-106
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Appenders
>    Affects Versions: 1.2.9
>            Reporter: Chi Lang
>            Priority: Trivial
>
> TraceAppender now always put logger name as trace category when writing to System.Diagnostics.Trace.Write
> ie. :
> System.Diagnostics.Trace.Write(RenderLoggingEvent(loggingEvent), loggingEvent.LoggerName);
> This resulted in logger's name appearing twice in Trace logs if once use/share the same conversion for both file-based and trace appenders, eg.
> "%date [%thread] %-5level %logger - %message%"
> It would be nice to have a settable property on TraceAppender to disable using logger's name as trace category, ie. :
> public bool UseLoggerNameAsTraceCategory
> {
> get; set;
> }
> ...
> if (m_useLoggerNameAsTraceCategory)
> {
>   System.Diagnostics.Trace.Write(RenderLoggingEvent(loggingEvent), loggingEvent.LoggerName);
> }
> else
> {
>   System.Diagnostics.Trace.Write(RenderLoggingEvent(loggingEvent), null);
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira