Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / October 2005

Tip: Looking for answers? Try searching our database.

Hmm, not understanding log4j properly :(

Thread view: 
Pep - 07 Oct 2005 13:23 GMT
I have these 2 lines of code in my test program

private static final Category log = Category.getInstance("TEST");
PropertyConfigurator.configure("TestOutputFile");

and I thought  after reading the documentation that this would open a output
file called testOutputFile which log4j would then store the results in
using the following line of code

log.info(message);

except that I get this error message

log4j:ERROR Could not read configuration file [TestOutputFile].
java.io.FileNotFoundException: TestOutputFile (No such file or directory)
       at java.io.FileInputStream.open(Native Method)
       at java.io.FileInputStream.<init>(FileInputStream.java:106)
       at java.io.FileInputStream.<init>(FileInputStream.java:66)
       at
org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
       at
org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
       at uk.co.ticketweb.PSPserver.PSPserver.<init>(PSPserver.java:121)
       at uk.co.ticketweb.PSPserver.PSPserver.main(PSPserver.java:980)
log4j:ERROR Ignoring configuration file [TestOutputFile].

which indicates that

PropertyConfigurator.configure("TestOutputFile");

is actually looking to open this file for reading?

I am now confused, I want to open a log file to write the output debug,
info, warn and fatal messages to.

Can anyone tell me what I need to do as I am somewhat confused by the
documentation?

TIA,
Pep.
Stefan Siegl - 07 Oct 2005 14:21 GMT
> I have these 2 lines of code in my test program
>
[quoted text clipped - 8 lines]
>
> except that I get this error message
[...]
> which indicates that
> PropertyConfigurator.configure("TestOutputFile");
> is actually looking to open this file for reading?

Right. This is because, PropertyConfigurator.configure() will try to setup
the log4j system. As the documentation of the method (public static void
configure(String configFilename)) suggests, the path that you have to
provide is the path to the configuration file and not the path to the file
you want your log information to be logged to. Log4j decouples the process
of logging (e.g. log.info()) with the reaction to the logging (e.g. writing
sth to a file). The reaction has to be defined within the configuration
file. Log4j reads the configuration file and decides what should be done
with logged information. For example you might have multiple appenders (e.g.
one writing to a file and one to the console), with different layouts (e.g.
the console only displays the time and the message, whereas the file logging
should also provide the name of the class that logged the message).

> Can anyone tell me what I need to do as I am somewhat confused by the
> documentation?

Try to define a properties file containing the configuration of log4j (here
is a description: http://www.vipan.com/htdocs/log4jhelp.html). Let me know
if you need more help

hth,
Stefan


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.