Pac*_*ver 8 java logging log4j spring-boot
我试图使用Log4j写入我的文件系统中的本地日志文件.
实际上使用了来自不同项目的确切属性文件,只是更改了顶级目录的名称以匹配我的应用程序名称.不同的项目写入logs.log文件,但这根本不打印任何内容.两个项目都使用相同版本的log4j.
的pom.xml
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在我的基于Unix的macOS上,我进入/ var/log /并执行以下操作:
sudo mkdir myapp
chmod 777 myapp
Run Code Online (Sandbox Code Playgroud)
在myapp内部,以下设置遍布整个地方:
if (log.isDebugEnabled() {
log.debug("print something");
}
Run Code Online (Sandbox Code Playgroud)
MYAPP/src目录/主/资源/ log4j.properties:
log4j.rootCategory=DEBUG, RF
log4j.category.your.category.name=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%F]: %m [%d{ISO8601}]%n
log4j.logger.com.amazonaws=DEBUG RF
log4j.appender.RF=org.apache.log4j.RollingFileAppender
log4j.appender.RF.File=/var/log/myapp/logs.log
log4j.appender.RF.MaxFileSize=10MB
log4j.appender.RF.MaxBackupIndex=30
log4j.appender.RF.layout=org.apache.log4j.PatternLayout
log4j.appender.RF.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x(%F:%L) - %m%n
Threshold=DEBUG
Run Code Online (Sandbox Code Playgroud)
不明白为什么在里面:
/var/log/myapp/
Run Code Online (Sandbox Code Playgroud)
没有logs.log文件!
我在使用以下构建的Spring Boot 1.5.4.RELEASE中使用它:
mvn clean install
Run Code Online (Sandbox Code Playgroud)
然后运行使用:
java -jar myapp.jar
Run Code Online (Sandbox Code Playgroud)
要么
mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)
如果有人能为我提供更好的属性文件或看到我做错了什么,我将不胜感激?
感谢您抽出时间来阅读.
@Veeram是对的 - 日志是由logback打印的,它是 Spring Boot 附带的。您需要将其替换为Log4j。然而,现在这不是一个选择:
Apache EOL 公告后,Log4j 1 支持已被删除。
所以我建议您考虑升级到Log4j 2。
PS我认为您仍然可以使用Log4j 1.2,但在这种情况下,您必须定义并指定应从spring-boot-starter-logging模块中排除哪些依赖项,以及应添加哪些依赖项。我已经设置了一个演示项目来重现您的问题,这里是build.gradle中的依赖项列表(我使用 Gradle,但我认为您明白了):
dependencies {
compile('org.springframework.boot:spring-boot-starter') {
exclude group: 'ch.qos.logback'
exclude group: 'org.slf4j', module: 'log4j-over-slf4j'
}
compile('commons-logging:commons-logging:1.2')
compile('log4j:log4j:1.2.17')
compile('org.slf4j:slf4j-log4j12:1.7.25')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |