Naturally, but even if I set in the file: log4.loggerFactory=MyFactory
And in the code I have org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger("myLogger");
I don't get the logger that my factory created. I see in debug that the
factory is called but my client code still gets a native log4j Logger and
not my own custom logger.
>From what I saw in the code the reason is because log4j uses internally a
RepositorySelector that always returns the regular Logger. The LogManager
has a setter but log4j does not expose calling this setter via
configuration. This is really what I think is missing.
You can always call a code like this:
LogManager.setRepositorySelector(new RepositorySelector(){
public LoggerRepository getLoggerRepository() {
return myHierarchy;
}
}, null);
But when this is done via code and not using configuration this means every
new client needs to run this code. I am looking for a pure configurable
solution so each new client that wants to work with my Custom Logger just
needs to set the correct properties in log4j.properties.
I hope this thread is clear for every one...
Thanks.
On Thu, Apr 2, 2009 at 2:15 PM, Bender Heri wrote:
> Already looked at the LoggerFactory?
> Heri
>
> -Ursprüngliche Nachricht-
> Von: Yair Ogen [mailto:yairo...@gmail.com]
> Gesendet: Donnerstag, 2. April 2009 10:13
> An: log4j-user@logging.apache.org
> Betreff: Configure custom logger from file
>
> Hi,
>
> I need to configure a custom Legger that extends then log4j Logger.
>
> I want users to code: Logger.getLogger, and get the custom logger.
>
> I know how to do this in code, but this will require every developer to
> call this code.
>
> I want to find a way to this via the log4.properties file so if all
> developers use the same file their code is clean and will use the custom
> logger in a transparent way.
>
> Any ideas?
>
> Thanks.
>
>
> -
> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
>
>