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