Off the top of my head: doesn't the logfile only get generated if the logger is configured? Rather than deferring the log file getting created, couldn't you defer execution of the configurator?
You could use a getter to run the configurator, like the following: private static ILog _log = LogManager.GetLogger(typeof(Program)); public static ILog log { get { if(!log4net.LogManager.GetRepository().Configured) log4net.Config.XmlConfigurator.Configure(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)); return _log; } } This way, your logger will only get configured (and the file subsequently made) if something is logged. Is it a hack? Absolutely. But it's the quickest way I could think of to answer your question. :) -Ross On Fri, Jul 31, 2009 at 10:23 AM, Wolfgang Trog <wolfg...@wollinet.com>wrote: > For now, I tried a quick hack and modified FileAppender and it’s now > working like I want: > > > > override public void ActivateOptions() > > { > > … > > > > if ( m_fileName != null ) > > { > > //SafeOpenFile( m_fileName, m_appendToFile ); > > } > > else > > { > > LogLog.Warn( "FileAppender: File option not set for > appender [" + Name + "]." ); > > LogLog.Warn( "FileAppender: Are you using FileAppender > instead of ConsoleAppender?" ); > > } > > } > > > > I would prefer a solution, where I don’t have to use my own appender, but > at least I have a workaround. > > > > Regards, > Wolfgang > > > > > > *From:* Wolfgang Trog [mailto:wolfg...@wollinet.com] > *Sent:* Freitag, 31. Juli 2009 17:15 > *To:* 'Log4NET User' > *Subject:* RE: Defer file creation > > > > I want to create protocols for jobs that can be executed in our > application, preferably one file per job and execution. But I don’t want a > file, if the job is not executed. The jobs are only executed once a month > for example. > > > > Thx for the quick response ! > > > > Wolfgang > > > > > > *From:* Karim Bourouba [mailto:kar...@hotmail.com] > *Sent:* Freitag, 31. Juli 2009 17:06 > *To:* log4net-user@logging.apache.org > *Subject:* RE: Defer file creation > > > > > Hi There, > > > > I dont think I have an answer to your question just now - but can I ask why > you would prefer to defer creating the log file? > > > > > ------------------------------ > > From: wolfg...@wollinet.com > To: log4net-user@logging.apache.org > Subject: Defer file creation > Date: Fri, 31 Jul 2009 16:15:28 +0200 > > Hi Everbody, > > > > I’m looking for a way to defer the creation of the log file until the first > entry is logged. I want to use log4net for writing protocols for jobs that > can be executed in my application. With my current configuration the file is > created during startup which makes no sense if the job doesn’t run. > > > > My current configuration: > > > > <appender name="…" type="log4net.Appender.RollingFileAppender"> > > <file value="....." /> > > <appendToFile value="false" /> > > <rollingStyle value="Date" /> > > <datePattern value="yyyy_MM_dd.\tx\t" /> > > <staticLogFileName value="false" /> > > <threshold value="INFO" /> > > <layout type="log4net.Layout.PatternLayout"> > > <conversionPattern value="%date;%level;%m%n" /> > > </layout> > > </appender> > > > > One possibility seems to be to generate the appender programmatically, but > then I lose a lot of flexibility. Another one is writing my own appender (or > subclassing an existing one). Is there another way ? > > > > Any help is appreciated, > > Wolfgang > > > > > ------------------------------ > > Share your memories online with anyone you want. Learn > more.<http://clk.atdmt.com/UKM/go/134665338/direct/01/> >