Here you go. It's pretty straightforward. Lemme know if you have any
questions.



-----Original Message-----
From: Tom Eugelink [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 11, 2003 21:50
To: Log4J Users List
Subject: Re: automatic reload


I also use a servlet to reload, but since I've gotten grip on the 
automatic feature of log4j, I started liking it. But it seems servlets 
is the way to go at this time.

However my servlet isn't such a fancy one like yours, so I would be 
interested in the source!

Tom



Charles Hudak wrote:

> Looks the attachment got filtered out. If anyone is interested, they can
> email me for the source. Sorry, but I don't have access to the cvs
> repository behind our firewall to upload it.
> 
> -----Original Message-----
> From: Charles Hudak [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, November 11, 2003 15:57
> To: 'Log4J Users List'
> Subject: RE: automatic reload
> 
> 
> I created one of these for our application.
> 
> It also handles clustered servers so if you have multiple servers using
the
> same config, it will do a reload on all of them by hitting the main url
> (useful if you are behind a firewall or using a big ip box, like we are).
> You can also have specific files for each server and it will also handle
> this. When you hit this servlet, you will get a results page that shows
the
> result of the refresh.
> 
> I've attached the file if anyone is interested.
> 
> 
> 
> -----Original Message-----
> From: Mark Womack [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, November 11, 2003 15:46
> To: 'Log4J Users List'
> Subject: RE: automatic reload
> 
> 
> There is a configuration servlet in the current log4j-sandbox cvs that I
> have been hoping to upgrade to handle the reloading of a configuration
file.
> I just mention it because we would like to release a set of useful,
> servlet/webapp related classes with the v1.3 release.
> 
> -Mark
> 
> 
>>-----Original Message-----
>>From: Larry Young [mailto:[EMAIL PROTECTED]
>>Sent: Tuesday, November 11, 2003 12:08 PM
>>To: Log4J Users List
>>Subject: RE: automatic reload
>>
>>
>>Ken,
>>
>>         I don't know, perhaps my solution is too simplistic or too 
>>low-tech, but for a webapp, I simply have a URL that I ping 
>>when I change 
>>the log4j config file.  Since the config file doesn't change 
>>automatically, 
>>it's pretty trivial to hit the URL right after I change the 
>>file.  I agree, 
>>it's not fully automatic, but it certainly does avoid all the 
>>rest of the 
>>headache with timers and threads.
>>
>>         Another option which I've considered using is to put 
>>a test at 
>>login time (don't care who the user is) to see if its time to 
>>re-check and 
>>possibly re-load the config file.  The last update time could be held 
>>statically in the class which handles the reloading, and 
>>synchronization 
>>used to avoid duplicate updates.  This is basically a 
>>"polling" version of 
>>WatchAndConfig.
>>
>>         BTW, you could do this anywhere, but login seemed 
>>like a decent 
>>compromise between checking it constantly for each doPost, 
>>and putting it 
>>somewhere more obscure that might not get run regularly.  So 
>>if no one is 
>>logged into my webapp, I probably don't care what level I'm 
>>logging at, and 
>>if I do care for some reason, I can always login myself!
>>
>>         Just a thought ...
>>
>>--- regards ---
>>Larry
>>
>>
>>At 12:31 PM 11/11/03, you wrote:
>>
>>>I don't think addShutdownHook() is enough for a J2EE 
>>
>>deployment if you are
>>
>>>relying on static initialization of the thread.  Static 
>>
>>initialization
>>
>>>occurs upon application deployment, but the shutdown hook 
>>
>>would only run
>>
>>>when the server is stopped, not when the application is undeployed.
>>>Consequently, the application would probably fail to 
>>
>>undeploy properly,
>>
>>>which could eventually cause the app server to run out of memory.
>>>
>>>AFAIK, in J2EE 1.3 there is no application level startup or 
>>
>>shutdown hook.
>>
>>>Maybe something can be done with JMX?
>>>
>>>Ken
>>>
>>>
>>>>-----Original Message-----
>>>>From: Shapira, Yoav [mailto:[EMAIL PROTECTED]
>>>>Sent: Tuesday, November 11, 2003 1:50 PM
>>>>To: Log4J Users List
>>>>Subject: RE: automatic reload
>>>>
>>>>
>>>>
>>>>Howdy,
>>>>A decent place to stop and start such threads in a 
>>
>>servlet container
>>
>>>>would be the ServletContextListener.
>>>>
>>>>There is no static destructor, but you have 
>>
>>Runtime#addShutdownHook
>>
>>>>which is suitable for this purpose as well.  Create a 
>>
>>little Runnable
>>
>>>>class with a reference to the Watchdog thread, add your 
>>
>>Runnable as a
>>
>>>>shutdown hook, the JVM will run it (once) on shutdown, and
>>>>your Runnable
>>>>should interrupt the log4j Watchdog thread.  This approach is good
>>>>outside servlet containers as well.
>>>>
>>>>Yoav Shapira
>>>>Millennium ChemInformatics
>>>>
>>>>
>>>>
>>>>>-----Original Message-----
>>>>>From: Tom Eugelink [mailto:[EMAIL PROTECTED]
>>>>>Sent: Tuesday, November 11, 2003 1:45 PM
>>>>>To: Log4J Users List
>>>>>Subject: Re: automatic reload
>>>>>
>>>>>Hey Mark,
>>>>>
>>>>>Well, I could always try to make time (time suddenly is a rare
>>>>
>>>>commodity
>>>>
>>>>>once you furthered yourself in the human genepool, at 
>>
>>least for the
>>
>>>>next
>>>>
>>>>>6 years or so).
>>>>>
>>>>>What I see as a problem is not so much the automatic 
>>
>>starting of a
>>
>>>>>thread, but when to stop it. In a stand alone 
>>
>>application this is not
>>
>>>>>such a problem, but in a container, where you have a separate
>>>>>configuration for each context (webapp0, I can't imagine
>>>>
>>>>where to hook
>>>>
>>>>>that in, in a generic fashion. Starting could be done in 
>>
>>the static
>>
>>>>>constructor of a class, which is loaded by the classloader of the
>>>>>context, but AFAIK there is no static destructor.
>>>>>
>>>>>How does the plugin logic start and stop plugins?
>>>>>
>>>>>Tom
>>>>>
>>>>>
>>>>>
>>>>>Mark Womack wrote:
>>>>>
>>>>>
>>>>>>Tom,
>>>>>>
>>>>>>In v1.3 Watchdogs will be a subclass of Plugin.  
>>
>>Plugins are new to
>>
>>>>v1.3
>>>>
>>>>>and
>>>>>
>>>>>>configurable from (at least xml) configuration files.  So,
>>>>
>>>>you'll be
>>>>able
>>>>
>>>>>to
>>>>>
>>>>>>define watchdogs in the configuration files.  Plugins have
>>>>
>>>>some code
>>>>to
>>>>
>>>>>not
>>>>>
>>>>>>stop/recreate running plugins during reconfiguration, 
>>
>>so eventually
>>
>>>>if a
>>>>
>>>>>>watchdog is watching the configuration file that defines
>>>>
>>>>it, it will
>>>>be
>>>>
>>>>>>maintained across reconfigurations, etc.  Still 
>>
>>working out some of
>>
>>>>those
>>>>
>>>>>>details.  Actually the Watchdog code I released 
>>
>>way-back-when still
>>
>>>>needs
>>>>
>>>>>to
>>>>>
>>>>>>be checked into cvs and worked into the plugin infrastructure.
>>>>>>
>>>>>>If you have any comments, ideas, or time to review 
>>
>>(once I get it
>>
>>>>checked
>>>>
>>>>>>in) I'd love to hear them.
>>>>>>
>>>>>>thanks,
>>>>>>-Mark
>>>>>>
>>>>>>
>>>>>>
>>>>>>>-----Original Message-----
>>>>>>>From: Tom Eugelink [mailto:[EMAIL PROTECTED]
>>>>>>>Sent: Tuesday, November 11, 2003 6:06 AM
>>>>>>>To: Log4J Users List
>>>>>>>Subject: Re: automatic reload
>>>>>>>
>>>>>>>
>>>>>>>I see (took a look at the sources that were included in the
>>>>>>>older mail).
>>>>>>>
>>>>>>>Basically he has rewritten the "AndWatch" part, 
>>
>>expanding it into a
>>
>>>>>>>semi-framework, and adding a method to stop the thread
>>>>>>>("stopWatching").
>>>>>>>
>>>>>>>Basically one could write a servlet that starts a watchdog
>>>>>>>upon load and
>>>>>>>stops it upon finalize. It still isn't done totally 
>>
>>external of the
>>
>>>>>>>application via configuration, but I can see how that can be
>>>>>>>a problem.
>>>>>>>
>>>>>>>I'll ponder a bit more. Thank you!
>>>>>>>
>>>>>>>Tom
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>Jacob Kjome wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>look at configureAndWatch() in the configurators.
>>>>>>>>
>>>>>>>>However, I wouldn't use this in a container as the thread
>>>>>>>
>>>>>>>will run until
>>>>>>>
>>>>>>>
>>>>>>>>the JVM is shut down.  There is no manual way to stop it.
>>>>>>>>
>>>>>>>>Look for Mark Womack's watchdogs in the next version of
>>>>
>>>>Log4j for a
>>>>
>>>>>>>>better solution.  Here's an old message with some actual
>>>>>>>
>>>>>>>code showing
>>>>>>>
>>>>>>>
>>>>>>>>how it works.  Check the latest CVS, though, as things have
>>>>>>>
>>>>>>>probably
>>>>>>>
>>>>>>>
>>>>>>>>changed...
>>>>
>>>>>>http://marc.theaimsgroup.com/?l=log4j-user&m=101656353725142&w=2
>>>>>>
>>>>>>>>Jake
>>>>>>>>
>>>>>>>>At 01:52 PM 11/9/2003 +0100, you wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>I know there is a parameter which can be used to specifiy
>>>>>>>
>>>>>>>that log4j
>>>>>>>
>>>>>>>
>>>>>>>>>must reload a configuration file (checking every so 
>>
>>often). But I
>>
>>>>>>>>>prefer autoconfiguration. AFAIK it is not possible to set
>>>>>>>
>>>>>>>autoreload
>>>>>>>
>>>>>>>
>>>>>>>>>from a configuration file, correct?
>>>>>>>>
>>>>>>>>>Tom
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>-----------------------------------------------------------
>>>>
>>>>----------
>>>>
>>>>>>>>>To unsubscribe, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>>>>>>For additional commands, e-mail:
>>>>
>>>>[EMAIL PROTECTED]
>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>-----------------------------------------------------------
>>>>
>>>>----------
>>>>
>>>>>>>>To unsubscribe, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>>>>>For additional commands, e-mail:
>>>>
>>>>[EMAIL PROTECTED]
>>>>
>>>>>>>>
>>>>>>>
>>>>>>>-----------------------------------------------------------
>>>>
>>>>----------
>>>>
>>>>>>>To unsubscribe, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>>>>For additional commands, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>>>
>>>>>>
>>---------------------------------------------------------------------
>>
>>>>>>To unsubscribe, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>>>For additional commands, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>>>
>>>>>
>>>---------------------------------------------------------------------
>>>
>>>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>For additional commands, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>>
>>>>
>>>>
>>>>This e-mail, including any attachments, is a confidential
>>>>business communication, and may contain information that is
>>>>confidential, proprietary and/or privileged.  This e-mail is
>>>>intended only for the individual(s) to whom it is addressed,
>>>>and may not be saved, copied, printed, disclosed or used by
>>>>anyone else.  If you are not the(an) intended recipient,
>>>>please immediately delete this e-mail from your computer
>>>>system and notify the sender.  Thank you.
>>>>
>>>>
>>>>
>>
>>---------------------------------------------------------------------
>>
>>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>For additional commands, e-mail: 
>>
>>[EMAIL PROTECTED]
>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>--------------------------
>>Larry Young
>>The Dalmatian Group
>>www.dalmatian.com 
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to