That's what I figured. It's been a long time since I've touched log4j, so I didn't know if something had changed since the last time I used it or if you were using a fancy appender built for, say, Eclipse. I knew the configuration was moderately different, but I didn't think much was beyond that (in so far as the core appenders, anyhow).
My curiosity is satisfied. Thanks. :) -Ross On Wed, May 12, 2010 at 6:40 AM, Steven Whatmore < steven.whatm...@purefacts.com> wrote: > Ross, > > We have a very similar set of Appenders to the log4net (as expected since > it is a port as far as I know) > > JAVA .NET > > ConsoleAppender DebugAppender > JDBCAppender ADONetAppender > DailyRollingFileAppender RollingFileAppender > > In fact I believe that most of the core Appenders included with log4j have > a corresponding counterpart in log4net > > The configuration is slightly different depending on what version since the > version that we are currently using in log4j is using the older property > file format as opposed to an XML configuration file (but I believe the newer > version of log4j has the XML configuration file option), and the actual > specification for the formats are specified in a different manner > > As an example, here is the configuration option for the ConsoleAppender > > Java > > log4j.appender.DebugAppender=org.apache.log4j.ConsoleAppender > log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout > log4j.appender.DebugAppender.layout.ConversionPattern=%d{ISO8601} %-5p > [%t] %c %M - %m\n > > .NET > > <appender name="DebugAppender" type="log4net.Appender.DebugAppender"> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%date %-5level [%thread] - > %message%newline" /> > </layout> > </appender> > > and the root logger > > Java > > log4j.rootLogger=DEBUG, DebugAppender, DailyRollingFileAppender > > .NET > > <root> > <level value="DEBUG" /> > <appender-ref ref="DebugAppender" /> > <appender-ref ref="RollingFileAppender" /> > </root> > > The similarities should be fairly obvious. > > Whatty > > From: Ross Hinkley [mailto:rosshink...@gmail.com] > Sent: Tuesday, May 11, 2010 4:27 PM > To: Log4NET User > Subject: Re: Controlling the log message format > > Here to help. We both learned something new. :) > > I won't pretend to know much about log4j, but I don't recall it having a > DebugAppender counterpart. (Is there something like a JDB appender?) > > If you're doing a conversion, what appender type are you converting from in > log4j? > > I realize this semi-digressive, but I have to admit, I'm curious. > > -Ross > On Tue, May 11, 2010 at 2:55 PM, Steven Whatmore < > steven.whatm...@purefacts.com> wrote: > Ross, > > Thanks for the help, greatly appreciated. > > We are in the process of porting the application from one platform (Java) > to .NET and on the Java platform we have the ability to control all aspects > of the log message. Thus I was expecting to be able to replicate the message > format in .NET so that it came out the same way. > > Understanding the log4net is a port I am not surprised to see minor > differences in the implementations, but am a little surprise to see the > different behaviour between the two different types of loggers. > > Thanks for the insight. > > Whatty > > From: Ross Hinkley [mailto:rosshink...@gmail.com] > Sent: Tuesday, May 11, 2010 2:05 PM > To: Log4NET User > Subject: Re: Controlling the log message format > > Now, that is interesting. > > Apparently, log4net sets the category of the debug message to the logger > name. You can try it for yourself: > > logger.Debug("hello!"); > Debug.WriteLine("hello!",logger.Logger.Name); > > .... should produce the same output. > > This is actually by design, per the documentation: > > > http://logging.apache.org/log4net/release/sdk/log4net.Appender.DebugAppender.html > > So, back to your original question before I totally understood the problem: > yes, you can control this, but you'll have to set up another logger. You > could do something like this: > > <logger name=""> > <appender-ref ref="DebugAppender"/> > </logger> > > ...and then use > > log4net.LogManager.GetLogger(string.Empty); > > ...to accomplish what you're trying to do, at least for development. You > should not leave it that way for production. In fact, I'd recommend naming > the logger something meaningful (although shorter than your namespace) and > using that. > > -Ross > On Tue, May 11, 2010 at 12:44 PM, Steven Whatmore < > steven.whatm...@purefacts.com> wrote: > First, thanks for the assistance. > > Okay so I took out %logger from the configuration > > <appender name="DebugAppender" type="log4net.Appender.DebugAppender"> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%date %-5level [%thread] - > %message%newline" /> > </layout> > </appender> > <appender name="RollingFileAppender" > type="log4net.Appender.RollingFileAppender"> > <file value="c:\app.log" /> > <appendToFile value="true" /> > <rollingStyle value="Size" /> > <maxSizeRollBackups value="10" /> > <maximumFileSize value="100KB" /> > <staticLogFileName value="true" /> > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%date %-5level [%thread] %logger - > %message%newline" /> > </layout> > </appender> > and this is what I got > > com.pf.util.implementation.AppConfigurationImpl: 2010-05-11 > 12:50:05,466 DEBUG [9] - handling sessionStart event > > I am grabbing the logger by Type using > > protected static new readonly ILog log = > LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); > > and my current configuration only has the root logger defined > > <root> > <level value="DEBUG" /> > <appender-ref ref="DebugAppender" /> > <appender-ref ref="RollingFileAppender" /> > </root> > > Interesting enough the entries in my RollingFileAppender are coming out > exactly as I expected. > > 2010-05-11 13:33:54,150 DEBUG [13] > com.purefacts.util.reports.implementation.ReportingApplicationConfigurationImpl > - handling sessionStart event > > > > > From: Ross Hinkley [mailto:rosshink...@gmail.com] > Sent: Tuesday, May 11, 2010 1:30 PM > To: Log4NET User > Subject: Re: Controlling the log message format > Won't %logger contain the logger name? How are you retrieving the logger > from the log manager? If you're using it by type, and are using the root > logger, I believe the log name defaults to the namespace of your binary. > > -Ross > On Tue, May 11, 2010 at 12:17 PM, Steven Whatmore < > steven.whatm...@purefacts.com> wrote: > That is what I thought - but no luck with that - I can't remember which > class I was looking at but it sure looks like you can't control that prefix > value - which I thought was very strange > > From: Ross Hinkley [mailto:rosshink...@gmail.com] > Sent: Tuesday, May 11, 2010 1:07 PM > To: Log4NET User > Subject: Re: Controlling the log message format > > This should be controllable via the conversionPattern. Something like the > following in your appender, maybe? > > <layout type="log4net.Layout.PatternLayout"> > <conversionPattern value="%date %-5level - %message%newline" /> > </layout> > > -Ross > On Tue, May 11, 2010 at 11:58 AM, Steven Whatmore < > steven.whatm...@purefacts.com> wrote: > Good morning, > > I would like to be able to control the format of the message, removing the > initial prefix > > As an example if the format of my message is: > > com.pf.util.implementation.AppConfigurationImpl: 2010-05-11 > 12:50:05,466 DEBUG [9] com.pf.util.implementation.AppConfigurationImpl - > handling sessionStart event > > I would like to remove the initial > "com.pf.util.implementation.AppConfigurationImpl" part resulting in: > > 2010-05-11 12:50:05,466 DEBUG [9] > com.pf.util.implementation.AppConfigurationImpl - handling sessionStart > event > > I have tried it through configuration but can't seem to control the prefix > > I took a quick look through the code and as far as I can tell this is not > configurable. > > Am I correct? > > Whatty > > >