user893664
user893664

Reputation: 319

how to create log in specific location when using log4j in java desktop application

I am using log4j in Eclipse for logging messages in a java desktop application. I want that the log should be created in a specific folder (Specifically, in the folder which contains source folder 'src' and classes folder 'bin').

Is it possible to set this in log4j.properties? How to ensure that log is created at this location only?

Upvotes: 9

Views: 70556

Answers (4)

prabesh
prabesh

Reputation: 1

It is not good to create log in a project folder since it gets bigger and bigger in size. Rather you can create it in user directory from which your application is running.

Eg: should be ${user.home}/appName/MyWEB.log , user generally has right to write in home dir

works for both windows and linux environment.

Upvotes: 0

sethu
sethu

Reputation: 8431

I would go with Saket's reply. But instead of hardcoding the location its always better to have a relative path.

If you started your application from a main method from a class called Launcher for example and this is the structure of your Eclipse Project directory:

Java Project
   src
   bin

Then just give your location to be

 log4j.appender.R.File=./log/Logfile.log

This will create the file under a directory log:

Java Project
   src
   bin
   log
     LogFile.log

Hope you got it.. :)

Upvotes: 27

Umer Hayat
Umer Hayat

Reputation: 2001

Yes it is possible to set it in property file. One example is:

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=D:/myapp/mylog.log
log4j.appender.rollingFile.MaxFileSize=2MB
log4j.appender.rollingFile.MaxBackupIndex=2
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n

log4j.appender.rollingFile.File=D:/myapp/mylog.log can be modified to any path on your disk.

Upvotes: 0

Saket
Saket

Reputation: 46147

Assuming you are using the RollingFileAppender, you could set something like this in your log4j.properties file (below I am setting C:/myapp/src/mylog.log as my target location - you can change this to your desired location):

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=C:/myapp/src/mylog.log
... (other configurations)
...

Upvotes: 8

Related Questions