[
https://issues.apache.org/jira/browse/LOGCXX-560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephen Webb updated LOGCXX-560:
--------------------------------
Description:
Logging needs to be configured before the first log call. To log in a static
initializer code, configuration must be executed during static initialization.
The log4cxx documentation and examples suggest calling the configure method of
the selected configurator in the main routine. It does not currently describe
automatic configuration.
Automatic configuration currently requires either a special name (log4cxx.xxx
or log4j.xxx) for the config file or an environment variable
(LOG4CXX_CONFIGURATION or log4j.configuration) set with the name of the config
file.
It would be nice to be able to plug in user specified configuration logic that
is invoked by log4cxx.
One possible approach would be to override autoConfigure() (added in
[#135)|https://github.com/apache/logging-log4cxx/pull/135] in a class that
inherits from log4cxx::Hierarchy.
Calling the LogManager::setRepositorySelector static function before other
static initialisations is difficult as static initialization order is not
easily controlled.
A new static method LogManager::getLogger("name", MyRepository::Instance())
would prevent static initialization order issues.
was:
Logging needs to be configured before the first log call. To log in a static
initializer code, configuration must be executed during static initialization.
The log4cxx documentation and examples suggest calling the configure method of
the selected configurator in the main routine. It does not currently describe
automatic configuration.
Automatic configuration currently requires either a special name (log4cxx.xxx
or log4j.xxx) for the config file or an environment variable
(LOG4CXX_CONFIGURATION or log4j.configuration) set with the name of the config
file.
It would be nice to be able to plug in user specified configuration logic that
is invoked by log4cxx.
One possible approach would be to override autoConfigure() (added in
[#135)|https://github.com/apache/logging-log4cxx/pull/135] in a class that
inherits from log4cxx::Hierarchy.
Calling the LogManager::setRepositorySelector static function before other
static initialisations is difficult as static initialization order is not
easily controlled.
A LogManager::getLogger("name", MyRepository::Instance()) would prevent static
initialization order issues.
> Logging in a static initializer
> -------------------------------
>
> Key: LOGCXX-560
> URL: https://issues.apache.org/jira/browse/LOGCXX-560
> Project: Log4cxx
> Issue Type: Improvement
> Reporter: Stephen Webb
> Priority: Major
>
> Logging needs to be configured before the first log call. To log in a static
> initializer code, configuration must be executed during static initialization.
> The log4cxx documentation and examples suggest calling the configure method
> of the selected configurator in the main routine. It does not currently
> describe automatic configuration.
> Automatic configuration currently requires either a special name (log4cxx.xxx
> or log4j.xxx) for the config file or an environment variable
> (LOG4CXX_CONFIGURATION or log4j.configuration) set with the name of the
> config file.
> It would be nice to be able to plug in user specified configuration logic
> that is invoked by log4cxx.
> One possible approach would be to override autoConfigure() (added in
> [#135)|https://github.com/apache/logging-log4cxx/pull/135] in a class that
> inherits from log4cxx::Hierarchy.
> Calling the LogManager::setRepositorySelector static function before other
> static initialisations is difficult as static initialization order is not
> easily controlled.
> A new static method LogManager::getLogger("name", MyRepository::Instance())
> would prevent static initialization order issues.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)