Nope, it's the same log4j.properties. I had an old one lying around in
NetBeans which was the 'same' except the name wasn't test, it was a company
name. That was what was being picked up, so that's why 'test' didn't work -
but 'xyzcorp' did. I found this when I changed the name from testbed.log to
somethingelse.log and it didn't change.
So I've gotten past the point of being able to figure out the name of the
specific instance if I know it.
What I can't get is the generic case, where I'm walking enumeration of
loggers and checking each of them for their associated appenders.
So please throw away ANYTHING beyond my last message.
Log4j.properties-------------------
log4j.rootLogger=info,test
log4j.appender.test=org.apache.log4j.DailyRollingFileAppender
log4j.appender.test.Append=false
log4j.appender.test.File=somethingelse.log
log4j.appender.test.layout=org.apache.log4j.SimpleLayout
log4j.debug=true
-----------------------------------
Source-----------------------------
public static void main(String[] args) {
Logger logger = null;
logger = logger.getLogger("test");
logger.info("Beginning logger test");
int countOfLoggers = 0;
Enumeration loggers =
LogManager.getLoggerRepository().getCurrentLoggers();
if(loggers != null){
while(loggers.hasMoreElements()){
Logger l = (Logger)loggers.nextElement();
System.out.println("Logger #" + (++countOfLoggers) + " is " +
l.getName());
int countOfAppenders = 0;
Enumeration allAppenders = l.getAllAppenders();
if(null == allAppenders) {
System.out.println("\tgetAllAppenders() returned null");
continue;
}
if(allAppenders instanceof org.apache.log4j.helpers.NullEnumeration)
{
System.out.println("\tgetAllAppenders() returned
NullEnumeration");
continue;
}
while(allAppenders.hasMoreElements()){
Appender t = (Appender)allAppenders.nextElement();
if(null == t) {
System.out.println("\tAppender is null");
} else {
countOfAppenders++;
if(t instanceof FileAppender) {
FileAppender fileAppender = (FileAppender)t;
System.out.println("\tAppender " + countOfAppenders + " " +
t.getName() + " is FileAppender " +
fileAppender.getFile());
} else {
System.out.println("\tAppender " + countOfAppenders + " " +
t.getName() + " is something else");
}
}
}
}
}
}
}
-----------------------------------
Output-----------------------------
log4j: Parsing for [root] with value=[info,test].
log4j: Level token is [info].
log4j: Category root set to INFO
log4j: Parsing appender named "test".
log4j: Parsing layout options for "test".
log4j: End of parsing for "test".
log4j: Setting property [file] to [somethingelse.log].
log4j: Setting property [append] to [false].
log4j: setFile called: somethingelse.log, false
log4j: setFile ended
log4j: Appender [test] to be rolled at midnight.
log4j: Parsed "test" options.
log4j: Finished configuring.
Logger #1 is test
getAllAppenders() returned NullEnumeration
-----------------------------------
TIA!
-----Burton
-----Original Message-----
From: Paul Smith [mailto:[EMAIL PROTECTED]
Sent: Thursday, December 01, 2005 3:36 PM
To: Log4J Users List
Subject: Re: Silly ? - How do I figure out the name of the file the log is
being written to?
On 02/12/2005, at 8:03 AM, Burton Strauss wrote:
> That's easy ... console output is from System.out.println(). How else
> are you going to test the logger if you can't trust it... :-)
Umm, in your original post you had log4j logging in the test:
Appender t = LogManager.getRootLogger().getAppender( "test");
if(null == t) {
logger.info("LogManager.getRootLogger().getAppender(\"test\") is
null");
} else if(t instanceof FileAppender) {
logger.info("LogManager.getRootLogger().getAppender(\"test\") is
FileAppender");
} else {
logger.info("LogManager.getRootLogger().getAppender(\"test\") is
something else");
}
>
>
> But the other path still fails. I expanded the test program to this:
>
> public static void main(String[] args) {
> Logger logger = null;
> logger = logger.getLogger("test");
> logger.info("Beginning logger test");
> int countOfLoggers = 0;
> Enumeration loggers =
> LogManager.getLoggerRepository().getCurrentLoggers();
> if(loggers != null){
> while(loggers.hasMoreElements()){
</snip>
Ok, in this test you have gotten rid of your log4j.properties....
Correct? If so, then where is the configuration of actually _adding_ the
FileAppender ? Or what _is_ configuring log4j in this test?
Paul
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]