You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by Weston Weems <ww...@gmail.com> on 2005/06/29 20:17:33 UTC

Configuration Questions

Ok, after re-evaluating my needs... heres what I've decided...

1) I need basic logging functionality with normal levels (this much I
can figure out fairly easily)

2) I will be using log4net to record audit logging, eg login
failures... and stuff I'll be reporting against so it'll have to be
databased (sql server)


I've written configs that will allow me to write extra data to the
logs (fatal gets sent to email appender) etc... and it seems to work
decently, but my question is more for point number 2. What would be
the best way of filtering "more static" logging mechanisms...

Eg, I want auditing log stuff written to a seperate table. I was told
I can create custom levels, but I'd prefer to stick to using levels
for levels.

Should I have more than one ILog at any given point in a given context?

I know I can achieve my goals, its just by which method etc.

Re: Configuration Questions

Posted by Ron Grabowski <ro...@yahoo.com>.
If GetClassName() were implemented to return a string:

 static string GetClassName();

The code would look something like this:

 ILog log = LogManager.GetLogger("Company.Project.User);
 ILog auditLog = LogManager.GetLogger("AUDIT.Company.Project.User");

Putting the AUDIT in front is a simple way to direct AUDIT logs to a
seperate appender while preserving the namespace structure in case you
want to do additional processing later.

http://tinyurl.com/7nccu
http://logging.apache.org/log4net/release/manual/introduction.html#hierarchy

I can't think of a good way to explain it other than try running your
application configured with a few loggers and experiment when their
additivity settings set to true then false.

--- Weston Weems <ww...@gmail.com> wrote:

> one quick question on this subject btw...
> 
> how does GetLogger know to get the AUDIT log if I am throwing a class
> type in there as well?
> 
> Is that what additivity is?
> 
> 
> 
> 
> 
> On 6/29/05, Weston Weems <ww...@gmail.com> wrote:
> > Exactly the kind of thing I was looking for.
> > 
> > On 6/29/05, Ron Grabowski <ro...@yahoo.com> wrote:
> > > You could prefix a second logger with AUDIT to differentiate
> messages
> > > coming from the same class:
> > >
> > >  ILog log = LogManager.GetLogger(GetClassName());
> > >  ILog auditLog = LogManager.GetLogger("AUDIT." + GetClassName());
> > >
> > >  auditLog.Info("The user has logged in.");
> > >
> > >  <logger name="AUDIT" additivity="false">
> > >   <level value="INFO" />
> > >   <appender-ref ref="AuditAdoNetAppender" />
> > >  </logger>
> > >
> > > --- Weston Weems <ww...@gmail.com> wrote:
> > >
> > > > Ok, after re-evaluating my needs... heres what I've decided...
> > > >
> > > > 1) I need basic logging functionality with normal levels (this
> much I
> > > > can figure out fairly easily)
> > > >
> > > > 2) I will be using log4net to record audit logging, eg login
> > > > failures... and stuff I'll be reporting against so it'll have
> to be
> > > > databased (sql server)
> > > >
> > > >
> > > > I've written configs that will allow me to write extra data to
> the
> > > > logs (fatal gets sent to email appender) etc... and it seems to
> work
> > > > decently, but my question is more for point number 2. What
> would be
> > > > the best way of filtering "more static" logging mechanisms...
> > > >
> > > > Eg, I want auditing log stuff written to a seperate table. I
> was told
> > > > I can create custom levels, but I'd prefer to stick to using
> levels
> > > > for levels.
> > > >
> > > > Should I have more than one ILog at any given point in a given
> > > > context?
> > > >
> > > > I know I can achieve my goals, its just by which method etc.
> > > >
> > >
> > >
> >
> 


Re: Configuration Questions

Posted by Weston Weems <ww...@gmail.com>.
one quick question on this subject btw...

how does GetLogger know to get the AUDIT log if I am throwing a class
type in there as well?

Is that what additivity is?





On 6/29/05, Weston Weems <ww...@gmail.com> wrote:
> Exactly the kind of thing I was looking for.
> 
> On 6/29/05, Ron Grabowski <ro...@yahoo.com> wrote:
> > You could prefix a second logger with AUDIT to differentiate messages
> > coming from the same class:
> >
> >  ILog log = LogManager.GetLogger(GetClassName());
> >  ILog auditLog = LogManager.GetLogger("AUDIT." + GetClassName());
> >
> >  auditLog.Info("The user has logged in.");
> >
> >  <logger name="AUDIT" additivity="false">
> >   <level value="INFO" />
> >   <appender-ref ref="AuditAdoNetAppender" />
> >  </logger>
> >
> > --- Weston Weems <ww...@gmail.com> wrote:
> >
> > > Ok, after re-evaluating my needs... heres what I've decided...
> > >
> > > 1) I need basic logging functionality with normal levels (this much I
> > > can figure out fairly easily)
> > >
> > > 2) I will be using log4net to record audit logging, eg login
> > > failures... and stuff I'll be reporting against so it'll have to be
> > > databased (sql server)
> > >
> > >
> > > I've written configs that will allow me to write extra data to the
> > > logs (fatal gets sent to email appender) etc... and it seems to work
> > > decently, but my question is more for point number 2. What would be
> > > the best way of filtering "more static" logging mechanisms...
> > >
> > > Eg, I want auditing log stuff written to a seperate table. I was told
> > > I can create custom levels, but I'd prefer to stick to using levels
> > > for levels.
> > >
> > > Should I have more than one ILog at any given point in a given
> > > context?
> > >
> > > I know I can achieve my goals, its just by which method etc.
> > >
> >
> >
>

Re: Configuration Questions

Posted by Weston Weems <ww...@gmail.com>.
Exactly the kind of thing I was looking for.

On 6/29/05, Ron Grabowski <ro...@yahoo.com> wrote:
> You could prefix a second logger with AUDIT to differentiate messages
> coming from the same class:
> 
>  ILog log = LogManager.GetLogger(GetClassName());
>  ILog auditLog = LogManager.GetLogger("AUDIT." + GetClassName());
> 
>  auditLog.Info("The user has logged in.");
> 
>  <logger name="AUDIT" additivity="false">
>   <level value="INFO" />
>   <appender-ref ref="AuditAdoNetAppender" />
>  </logger>
> 
> --- Weston Weems <ww...@gmail.com> wrote:
> 
> > Ok, after re-evaluating my needs... heres what I've decided...
> >
> > 1) I need basic logging functionality with normal levels (this much I
> > can figure out fairly easily)
> >
> > 2) I will be using log4net to record audit logging, eg login
> > failures... and stuff I'll be reporting against so it'll have to be
> > databased (sql server)
> >
> >
> > I've written configs that will allow me to write extra data to the
> > logs (fatal gets sent to email appender) etc... and it seems to work
> > decently, but my question is more for point number 2. What would be
> > the best way of filtering "more static" logging mechanisms...
> >
> > Eg, I want auditing log stuff written to a seperate table. I was told
> > I can create custom levels, but I'd prefer to stick to using levels
> > for levels.
> >
> > Should I have more than one ILog at any given point in a given
> > context?
> >
> > I know I can achieve my goals, its just by which method etc.
> >
> 
>

Re: Configuration Questions

Posted by Ron Grabowski <ro...@yahoo.com>.
You could prefix a second logger with AUDIT to differentiate messages
coming from the same class:

 ILog log = LogManager.GetLogger(GetClassName());
 ILog auditLog = LogManager.GetLogger("AUDIT." + GetClassName());

 auditLog.Info("The user has logged in.");

 <logger name="AUDIT" additivity="false">
  <level value="INFO" />
  <appender-ref ref="AuditAdoNetAppender" />  
 </logger>

--- Weston Weems <ww...@gmail.com> wrote:

> Ok, after re-evaluating my needs... heres what I've decided...
> 
> 1) I need basic logging functionality with normal levels (this much I
> can figure out fairly easily)
> 
> 2) I will be using log4net to record audit logging, eg login
> failures... and stuff I'll be reporting against so it'll have to be
> databased (sql server)
> 
> 
> I've written configs that will allow me to write extra data to the
> logs (fatal gets sent to email appender) etc... and it seems to work
> decently, but my question is more for point number 2. What would be
> the best way of filtering "more static" logging mechanisms...
> 
> Eg, I want auditing log stuff written to a seperate table. I was told
> I can create custom levels, but I'd prefer to stick to using levels
> for levels.
> 
> Should I have more than one ILog at any given point in a given
> context?
> 
> I know I can achieve my goals, its just by which method etc.
>