我在Eclipse中使用log4j来记录java桌面应用程序中的消息。我希望日志应该在特定的文件夹中创建(具体来说,在包含源文件夹'src'和类文件夹'bin'的文件夹中)。
是否可以在log4j.properties中设置它?如何确保仅在此位置创建日志?
答案 0 :(得分:27)
我会和Saket的回复一起去。但是,不是硬编码位置,它总是更好地拥有相对路径。
例如,如果您从一个名为Launcher的类的main方法启动应用程序,那么这是Eclipse Project目录的结构:
Java Project
src
bin
然后将您的位置设为
log4j.appender.R.File=./log/Logfile.log
这将在目录日志下创建文件:
Java Project
src
bin
log
LogFile.log
希望你明白了.. :)
答案 1 :(得分:7)
假设您使用的是RollingFileAppender,您可以在log4j.properties
文件中设置类似的内容(下面我将C:/myapp/src/mylog.log
设置为我的目标位置 - 您可以将其更改为您想要的位置):
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=C:/myapp/src/mylog.log
... (other configurations)
...
答案 2 :(得分:0)
是的,可以在属性文件中设置它。一个例子是:
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 可以修改为磁盘上的任何路径。
答案 3 :(得分:0)
在项目文件夹中创建日志不是一件好事,因为它的大小越来越大。而是可以在运行应用程序的用户目录中创建它。
例如:应为 $ {user.home} /appName/MyWEB.log ,用户通常有权在主目录中写入
适用于Windows和Linux环境。