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
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.
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)
...
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.. :)
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.