how to create log in specific location when using

2019-01-24 14:14发布

问题:

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?

回答1:

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



回答2:

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


回答3:

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.



回答4:

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.



标签: java log4j