logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicholas Duane <nic...@msn.com>
Subject Injecting properties into LoggingEvent
Date Sat, 22 Oct 2016 15:30:25 GMT
Is there a way for me to inject properties into a LoggingEvent?  I'm trying to accomplish this
without the user (of log4net) doing anything special.  The only thing I could think of was
wrapping loggers, and while I'm not against doing that it would have to be done via configuration
as I don't want the user to have to do it programmatically.  Is there any way for me to inject
a logger wrapper via configuration?

The reason I'm looking to do this is that I would like to set a property on the LoggingEvent
to use for filtering.  This property would be determined based on the level property.  I could
simply use the level property for filtering, but I have other events which I generate which
are all logged at the Emergency level but have a different value for this property so for
them I'm using this property for filtering.  I don't have the same issue with these other
events because they are logged via an extension method I provided on the ILog interface:

public static class Logging


    public static void LogEvent(this ILog logger, Category category, IEvent evnt)


        if ((category != null) && (evnt != null))



            LoggingEvent le = new LoggingEvent(null, logger.Logger.Respository,

                    logger.Logger.Name, Level.Emergency, evnt, null);

            le.Properties["category"] = category.Name;





So for instance when a user does the following:

logger.Error("this is my error message");


logger.Warn("this is my warning message");


logger.Info("this is my info message");

I would like to set the property "category" on the LoggingEvent to "criticalDiagnostic". 
When they do:

logger.Debug("this is my debug message");


logger.Trace("this is my trace message");

I would like to set the property "category" on the LoggingEvent to "noncriticalDiagnostic".
 Any way for me to do that automagically?

I also posted this at:




View raw message