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 "Chi Lang (JIRA)" <ji...@apache.org> on 2006/12/11 13:10:21 UTC

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

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

        

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

Posted by Geert Verbakel <ge...@gmail.com>.
Inherited class:


using System.Diagnostics;

using log4net.Appender;

using log4net.Core;



namespaceUtils.Logging

{

      /// <summary>

      /// Trace appender that does not use the logger name as category

      /// </summary>

      public class SimpleTraceAppender:TraceAppender

      {

            /// <summary>

            /// SimpleTraceAppender

            /// </summary>

            public SimpleTraceAppender(){}



            /// <summary>

            /// Append loggingevent

            /// </summary>

            /// <param name="loggingEvent">loggingevent</param>

            protected override void Append(LoggingEvent loggingEvent)

            {

                  Trace.Write(base.RenderLoggingEvent(loggingEvent));

                  if (this.ImmediateFlush)

                  {

                        Trace.Flush();

                  }



            }

      }

}



2006/12/13, Chi Lang (JIRA) <ji...@apache.org>:
>
>    [
> http://issues.apache.org/jira/browse/LOG4NET-106?page=comments#action_12458062]
>
> Chi Lang commented on LOG4NET-106:
> ----------------------------------
>
> I just want the simplest solutions that works so I would wait with
> generalization until we'll actually see another user request with
> TraceAppender.
>
> I like your config change
>
> <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
> <category type="log4net.Appender.TraceAppender+NullCategory" />
> <layout type="log4net.Layout.SimplePatternLayout" />
> </appender>
>
> but would rather still add an property to TraceAppender rather than
> extends
> it.
>
>
>
> > 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
>
>
>

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

Posted by "Ron Grabowski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LOG4NET-106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ron Grabowski reassigned LOG4NET-106:
-------------------------------------

    Assignee: Ron Grabowski

> TraceAppender : Add switch to disable using logger name as trace category
> -------------------------------------------------------------------------
>
>                 Key: LOG4NET-106
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-106
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Appenders
>    Affects Versions: 1.2.9
>            Reporter: Chi Lang
>            Assignee: Ron Grabowski
>            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.
-
You can reply to this email to add a comment to the issue online.


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

Posted by "Nicko Cadell (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/LOG4NET-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12472481 ] 

Nicko Cadell commented on LOG4NET-106:
--------------------------------------

How about just using a PatternLayout to render the string for the category name:

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
  <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger [%ndc] %property - %message%newline" />
  <category value="%logger" />
</appender>

This would give you the current behaviour.
To specify the user as the category use:

<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
  <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger [%ndc] %property - %message%newline" />
  <category value="%username" />
</appender>

This allows static strings as well as dynamic values. 

> TraceAppender : Add switch to disable using logger name as trace category
> -------------------------------------------------------------------------
>
>                 Key: LOG4NET-106
>                 URL: https://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.
-
You can reply to this email to add a comment to the issue online.


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

Posted by "Chi Lang (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/LOG4NET-106?page=comments#action_12458062 ] 
            
Chi Lang commented on LOG4NET-106:
----------------------------------

I just want the simplest solutions that works so I would wait with
generalization until we'll actually see another user request with
TraceAppender.

I like your config change

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

but would rather still add an property to TraceAppender rather than extends
it.



> 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

        

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

Posted by "Ron Grabowski (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LOG4NET-106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ron Grabowski resolved LOG4NET-106.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.2.11

Fixed in r607786.

> TraceAppender : Add switch to disable using logger name as trace category
> -------------------------------------------------------------------------
>
>                 Key: LOG4NET-106
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-106
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Appenders
>    Affects Versions: 1.2.9
>            Reporter: Chi Lang
>            Assignee: Ron Grabowski
>            Priority: Trivial
>             Fix For: 1.2.11
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.


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

Posted by "Ron Grabowski (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/LOG4NET-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12555160 ] 

Ron Grabowski commented on LOG4NET-106:
---------------------------------------

r607786 doesn't address how to pass in a null category. This may work:

 <category value="" />

but its probably better to explicitly express the desire to call a Trace.Write overload by using this syntax:

 <useCategory value="false" />

> TraceAppender : Add switch to disable using logger name as trace category
> -------------------------------------------------------------------------
>
>                 Key: LOG4NET-106
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-106
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Appenders
>    Affects Versions: 1.2.9
>            Reporter: Chi Lang
>            Assignee: Ron Grabowski
>            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.
-
You can reply to this email to add a comment to the issue online.


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

Posted by "Ron Grabowski (JIRA)" <ji...@apache.org>.
    [ 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