Wolfgang,

If you're separating trace information from activity information, then yes,
my (somewhat trite) solution is insufficient.  As noted, it is a bit of a
hack.  The custom appender solution is probably preferable.

Are you using the same logfile for every job?  That seems a touch awkward to
me (more so than one per job), but maybe for your implementation it fits.

After these jobs are run and the log files are written, what's your process
after that?  Do you go in and look to see if any files were made, or is
there some automated notification process?  If it's the latter, I really
like Karim's idea - presumably, you'd have some job set up to let you know
there were log files; why not simply run a database report instead?

-Ross

On Mon, Aug 3, 2009 at 2:19 AM, Wolfgang Trog <[email protected]> wrote:

>  Karim, no worries. About the DB … in fact I want to use the flexibility
> of log4net, to decide where the logs should go  (file and/or database), to
> change the log level on the fly and to separate activities form trace
> information. So it’s much easier for me, to change the appender (where I
> simply have to comment one line) than to write the code for writing it to
> the database and then to a log file.
>
>
>
> Thx,
>
> Wolfgang
>
>
>
>
>
> *From:* Karim Bourouba [mailto:[email protected]]
> *Sent:* Montag, 3. August 2009 09:00
>
> *To:* [email protected]
> *Subject:* RE: Defer file creation
>
>
>
>
> Hi Wolfgang,
>
>
>
> sorry, but I havent really been paying much attention to this thread I am
> afraid. Is it not possible for you to write your log to a DB and then create
> logfiles from that? It seems a bit long-winded, but could be a solution as
> opposed to creating your own appender.
>
>
>
>
>  ------------------------------
>
> From: [email protected]
> To: [email protected]
> Subject: RE: Defer file creation
> Date: Mon, 3 Aug 2009 08:43:56 +0200
>
> Hi Ross,
>
>
>
> thx for the suggestion. I can’t defer the logger configuration, because I
> need basic logging from the beginning. I could probably use a separate log
> file for each job, but that seems a bit awkward. I think I’ll stick to the
> “write my own appender” approach for the moment.
>
>
>
> Thx,
>
> Wolfgang
>
>
>
>
>
> *From:* Ross Hinkley [mailto:[email protected]]
> *Sent:* Freitag, 31. Juli 2009 18:02
> *To:* Log4NET User
> *Subject:* Re: Defer file creation
>
>
>
> 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 <[email protected]>
> 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:[email protected]]
> *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:[email protected]]
>
> *Sent:* Freitag, 31. Juli 2009 17:06
>
> *To:* [email protected]
>
> *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: [email protected]
> To: [email protected]
> 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.
>
>
>
>
>  ------------------------------
>
> Windows Live Messenger: Thanks for 10 great years—enjoy free winks and
> emoticons. Get Them Now <http://clk.atdmt.com/UKM/go/157562755/direct/01/>
>

Reply via email to