If you create a file named log4j2.component.properties and place it in the 
class path you can specify any of the log4j system properties to tailor the 
desired behavior. The log4j-web module does this to disable the shutdown hook 
when running in a web container.

Ralph


On Jun 5, 2014, at 11:42 AM, Matt Sicker <boa...@gmail.com> wrote:

> That doesn't sound too far off from what I'd expect is the case (or desired
> case) in a lot of environments. You can use property placeholders in a lot
> of places to be later configured through various means, and you can even
> specify the configuration via JNDI.
> 
> In regards to the shutdown hook, perhaps it would be better to offer a
> public API to shutdown instead? That way each use case can hook it into the
> proper location.
> 
> 
> On 5 June 2014 01:17, James Bellenger <ja...@kixeye.com> wrote:
> 
>> Hi Matt.
>> Our environment is a custom scala application server. Our use case is the
>> same as most standalone java apps -- we just want to log stuff and have it
>> go somewhere. We're extremely vanilla in what we need from log4j -- it's
>> really just different combinations of console, rollingfile, and flume
>> appenders.
>> 
>> Rationale for some of our requirements, are in priority order:
>> 
>> *having shutdownHook disabled*
>> Our server registers its own jvm shutdown hook to know when to start
>> shutting itself down. Shutdown isn't always straight forward, so we need
>> log4j to keep running to capture logs.
>> 
>> *programmatic log4j configuration*
>> This is more of a proxy requirement -- the real need is to be able to
>> support both local and deployed environments without having repetition in
>> our logging configuration. We do this by having one file define global
>> things like log levels for different packages, and then multiple config
>> files for each supported appender. At runtime, we configure the root logger
>> with the global configuration, and then load config files for each appender
>> we need and attach it to the root logger.
>> 
>> *not depending on log4j.configurationFile*
>> More of an aesthetic reason than anything else. We're already have a lot of
>> code and log4j meta configuration going on, and the more ways we can
>> simplify that the better. Why depend on two ways of configuring log4j when
>> we might get away with just one?
>> 
>> Overall, our programmatic configuration approach has felt pretty far off
>> the typical configuration path, and tends to break in frequent and subtle
>> ways. Is it atypical to want DRY logging configurations? How do other
>> people approach this?
>> 
>> 
>> On Wed, Jun 4, 2014 at 10:32 PM, Matt Sicker <boa...@gmail.com> wrote:
>> 
>>> It's supposed to help clean up any resources and commit anything
>> necessary.
>>> It sounds like you're having the opposite effect, though. Any details
>> about
>>> environment or plugins that might help?
>>> 
>>> 
>>> On 4 June 2014 16:59, James Bellenger <ja...@kixeye.com> wrote:
>>> 
>>>> (sorry for the fat-fingered send earlier)
>>>> 
>>>> Hello.
>>>> Our environment depends on these things:
>>>> 
>>>>   - programmatic log4j configuration
>>>>   - having "shutdownHook" disabled
>>>>   - ideally: not having to depend on the log4j.configurationFile
>>>>   environment var
>>>> 
>>>> I've had a hard time balancing all three of them.
>>>> Generally, the first access on the rootLogger context installs a
>> default
>>>> configuration that always enables the shutdownHook, and there's not a
>>> clear
>>>> means to disable it without falling back to the log4j.configurationFile
>>>> property.  Some of the methods available for reconfiguration (onChange,
>>>> setConfiguration), don't reset the shutdown hook.
>>>> 
>>>> As a new user to the group, and out of curiosity, why does shutdownHook
>>>> exist in the first place? It causes us to lose logs when the system is
>>>> shutting down -- why is this on by default?
>>>> 
>>>> 
>>>> On Wed, Jun 4, 2014 at 2:54 PM, James Bellenger <ja...@kixeye.com>
>>> wrote:
>>>> 
>>>>> Hello.
>>>>> Our environment depends on two things:
>>>>> 
>>>>>   - programmatic log4j configuration
>>>>>   - having "shutdownHook" disabled
>>>>>   - ideally: not having to depend on the log4j.configurationFile
>>>>>   environment var
>>>>> 
>>>>> programmatic configuration of log4j2.
>>>>> In trying to remove any dependencies on the log4j.configurationFile
>> env
>>>>> variable, I've found that there's not a good way to ensure that there
>>> is
>>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Matt Sicker <boa...@gmail.com>
>>> 
>> 
> 
> 
> 
> -- 
> Matt Sicker <boa...@gmail.com>


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to