Cheers
And just so you know I created this a little while ago.
Not sure if its what you mean by creating an issue but this is what I
have done so far.

http://support.castleproject.org/projects/FACILITIES/issues/view/FACILITIES-ISSUE-105

Cheers
Anthony

On Nov 11, 10:05 pm, Gauthier Segay <[EMAIL PROTECTED]> wrote:
> Hi Anthony,
>
> I suppose, the best now is to create an issue to attach patches with
> each basic features of your extensive summary, this way we could have
> the feature and discuss further more advanced option that are still
> "hazy"
>
> - add overrides to logging methods to accept extended properties
> - refactor with Log statement
> - make the patch applied
>
> then go further.
>
> what do you think?, also what does Ernst Naezer (which is ultimately
> managing this component) think?
>
> On Nov 10, 10:16 pm, vdhant <[EMAIL PROTECTED]> wrote:
>
> > Hey guys
> > I havn't heard anything on this in a while. Just checking in to see if
> > this is going to move forward.
> > Cheers
> > Anthony
>
> > On Nov 5, 1:34 pm, vdhant <[EMAIL PROTECTED]> wrote:
>
> > > So I guess we could summarise what we have got so far as follows:
>
> > > 1) Event based context logging properties is something that people are
> > > interested
> > >   1a) The best place to implement the support would be in
> > > IExtendedLogger as originally discussed
> > >   - As for what come next seems to be a bit hazy...
> > >    - We could add another set of methods to IExtendedLogger which
> > > allows for event based context logging properties to be passed in as a
> > > parameter,
> > >    - We could go a little more advanced and create a stackable/
> > > scopeable event based context logging properties construct which gets
> > > passed in to relevant log method being used
> > >    - We could make no changes to IExtendedLogger and make it so the
> > > only way that you could use event based context logging properties is
> > > to use the new LoggingEvent. But if this did occur the first think i
> > > would be doing is creating a set of extension methods myself which
> > > would given me the appearance of a new set of methods added to
> > > IExtendedLogger which allow me to add in the event logging properties.
> > > Personally I think others would to this as well, hence an embedded
> > > solution may be cleaner.
>
> > > 2) A core "Log" method should be implemented in ILog
> > >   2a) All current log methods (i.e. Debug, Error, etc) would be
> > > changed to call this log method
> > >   2b) The log method would be implemented within base class and would
> > > be overridden by implementations such as Log4Net
> > >   2c) To state the obvious this Log method would be public and could
> > > be called directly in situation where the log level is determined at
> > > run time
>
> > > 3) LoggingEvent object could be introduced
> > >   - I think more details would need to be worked out as to what the
> > > posible interface for ILoggingEvent would be
> > >   - Reason being that the LoggingEvent class in Log4Net is rather
> > > vobes (i am guess the others are too) and have large composition
> > > chains (note sure if that is really a term but i think you will get
> > > the picute)
> > >   - In saying this I think that we could state the below, let me know
> > > what you think
> > >   3a) Before LoggingEvent can be created we need an ILoggingEvent
> > > interface (again sorry for what maybe stating the obvious)
> > >   3b) This interface will force the implementation of arguments that
> > > can be currently passed into the current log methods (i.e. Debug,
> > > Error, etc) and any additional items that come out of this unit of
> > > work
> > >   3c) A version of the new Log method in ILog will be provided which
> > > allows for an ILoggingEvent to be passed in
>
> > > If i have missed anything so far let me know.
>
> > > Outstanding issues are the:
> > >  - Event based context logging properties
> > >  - An interface for LoggingEvent
>
> > > Cheers
> > > Anthony
>
> > > On Nov 5, 9:44 am, "Alex Henderson" <[EMAIL PROTECTED]> wrote:
>
> > > > I think it will play just fine with the underlying implementations - if 
> > > > you
> > > > take a look at log4net you'll find the various logging methods 
> > > > implemented
> > > > on the log4net.Core.LogImpl class  (ILog interface) all end up being
> > > > directed to one of two methods on the underlying ILogger class:
>
> > > >   void Log(Type callerStackBoundaryDeclaringType, Level level, object
> > > > message, Exception exception);
> > > >   void Log(LoggingEvent logEvent);
>
> > > > I certainly was not proposing dropping the existing Debug etc. methods 
> > > > - 99%
> > > > of the time it's all you need for most logging requirements - just that
> > > > providing a more dynamic/flexible Log method would suit both user 
> > > > extensions
> > > > such as event-level properties and simplify the current implementation a
> > > > bit, especially if targeting other logging frameworks which may not
> > > > implement a similar interface.  I guess we have to decide where 
> > > > opinions lie
> > > > around other possibilites if going down this path (i.e. do we stick 
> > > > with the
> > > > existing set of logging levels, or support additional logging levels 
> > > > through
> > > > some kind of mechanism, like most logging frameworks support in way or
> > > > another).
>
> > > > A single underlying Log method would also make it easy to implement 
> > > > support
> > > > for say capturing log4net logging events and redirecting them to the 
> > > > logging
> > > > facilities implementation too, if for example you wanted to support a
> > > > logging framework other then log4net when using NHibernate.
>
> > > > As you say extension methods aren't accessible to all consumers (or 
> > > > easily
> > > > discoverable) and IExtendedLogger already encapsulates other contextual
> > > > properties - so it seems logical to bundle that functionality into the
> > > > existing interface rather then tack on some extension methods.
>
> > > > Cheers,
>
> > > >  - Alex
>
> > > > On Wed, Nov 5, 2008 at 12:12 PM, Gauthier Segay <[EMAIL 
> > > > PROTECTED]>wrote:
>
> > > > > @ Anthony
>
> > > > > you are right, I mistaken your proposition to be applied to ILogger.
>
> > > > > Indeed, IExtendedLogger seems the right place to put proposed
> > > > > extensions; managing the event stack should belong to the extended
> > > > > logger as you state it.
>
> > > > > @ Alex
>
> > > > > Having Log method with at least loglevel is really usefull (as well as
> > > > > IsLogLevelEnabled) when you do not want to set the log level in stone,
> > > > > I've worked arround this with extension methods myself but an embeded
> > > > > solution is better.
>
> > > > > However, few things to keep in mind:
> > > > > - extension methods are nicely consumed in C# (it seems to me that not
> > > > > every "consumer" languages support them)
> > > > > - Needing to instanciate a LogEvent in client code sucks 99% of the
> > > > > time, logging should be oneliner as much as possible (anyone ever saw
> > > > > first occurence of MSENTLIB logging statements?)
>
> > > > > as for the idea of having only one base Log statement that all other
> > > > > methods use seems good on the maintenance standpoint, it means all
> > > > > theses methods can be set in a base logger class, but I'm unsure if it
> > > > > plays well with underlying logging frameworks.
>
> > > > > On Nov 4, 9:11 am, bittercoder <[EMAIL PROTECTED]> wrote:
> > > > > > Hmm... just thinking about this...
>
> > > > > > Currently event logging in general is missing from the logging
> > > > > > implementation in Castle - both log4net and nlog support logging
> > > > > > events (LoggingEvent in log4net and LogEventInfo in nlog) and it 
> > > > > > would
> > > > > > be pretty easy to create an abstraction to fit our needs (i.e.
> > > > > > message, arguments, exception, context properties etc.) - it seems 
> > > > > > to
> > > > > > me we could introduce a Log method to the base ILogger interface,
> > > > > > taking an LoggerEvent, introduce a common base class shared by both
> > > > > > logging implementations for the various Debug/DebugFormat etc.
> > > > > > overloads - all which just construct logger events and pass them to 
> > > > > > a
> > > > > > single Log method that needs to be implemented for either logging
> > > > > > framework - and gives us a single place to apply changes to any
> > > > > > information being logged.
>
> > > > > > As for event context properties support - if we had a single Log
> > > > > > method that means we could then introduce either additional methods 
> > > > > > to
> > > > > > IExtendedLogger or just use extension methods (which just make calls
> > > > > > to ILogger's Log method) to achieve what your originally proposed
> > > > > > (i.e. being able to pass in the context properties to the various
> > > > > > Debug/Info etc. logging overloads and have them used for that single
> > > > > > event).
>
> > > > > > Thoughts?
>
> > > > > > Cheers,
>
> > > > > >  - Alex
>
> > > > > > On Nov 3, 10:26 am, vdhant <[EMAIL PROTECTED]> wrote:
>
> > > > > > > Just as a side note, none of the changes that i have suggested 
> > > > > > > would
> > > > > > > require a change to ILogger, it would only require a change to
> > > > > > > IExtendedLogger. Can you please confirm that you believe that this
> > > > > > > would be the case, as from what you have said it sounds like you 
> > > > > > > think
> > > > > > > that we would be changing ILogger, only IExtendedLogger would a
> > > > > > > change.
>
> > > > > > > Any changes would integrate very nicely with IExtendedLogger, as
> > > > > > > IExtendedLogger defines the global and thread properties, so to 
> > > > > > > me it
> > > > > > > would make sense that event based properties would go here as 
> > > > > > > well.
>
> > > > > > > Also, with what you have suggested makes sense and i can see that 
> > > > > > > you
> > > > > > > are trying to keep the context properties separate. But i still 
> > > > > > > think
> > > > > > > that the logger (through IExtendedLogger) would need a reference 
> > > > > > > to
> > > > > > > the event based context properties somehow. Otherwise how and 
> > > > > > > where do
> > > > > > > you get an instance of LoggingContextStack from and how does the
> > > > > > > logger end up knowing about it?
>
> > > > > > > The last thing that I would want is to have to have another 
> > > > > > > property
> > > > > > > on my class that has to do with logging. Also, i don't think 
> > > > > > > having
> > > > > > > LoggingContextStack as a static property so anyone could 
> > > > > > > reference it
> > > > > > > is a very
>
> ...
>
> read more »

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Development List" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/castle-project-devel?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to