我的log4j没有记录任何日志文件。我不确定这是来自log4j.properties
内部的设置还是这个文件的位置的问题。
我构建项目的方式:
git clone https://github.com/spring-guides/gs-maven.git
然后修改:.\initial\pom.xml
并增加了对log4j
的支持:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.17.2</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
</dependencies>
就在:
</project>
将日志命令添加到.\initial\src\main\java\hello\HelloWorld.java
,如下所示:
package hello;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class HelloWorld {
private static Logger logger = LogManager.getLogger(HelloWorld.class);
public static void main(String[] args) {
logger.error("Application status : {} ", "start");
Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
logger.error("Application status : {} ", "terminated");
}
}
接着又补充了一句log4j.properties
:
appender.stdout.type = Console
# ... other appender properties
appender.file.type = File
# ... other appender properties
logger.app = INFO, stdout, file
# logger.app.name = com.example.app
# is equivalent to:
# appender.stdout.type = Console
# appender.stdout.name = stdout
# ...
appender.file.type = File
appender.file.name = mylog
# ...
# logger.app.name = com.example.app
logger.app.level = INFO
logger.app.appenderRef.$1.ref = stdout
logger.app.appenderRef.$2.ref = file
我不断更改此文件的位置,
.\initial\log4j.properties
.\initial\target\log4j.properties
.\initial\target\classes\log4j.properties
.\initial\target\classes\hello\log4j.properties
它们都没有工作过。我没有看到mylog
或任何其他日志文件。
我运行项目的方式如下:
cd initial
mvn compile
mvn package
java -jar target/gs-maven-0.1.0.jar
我该如何解决这个问题?
1条答案
按热度按时间oug3syen1#
您的配置存在一些问题:
src/main/resources
中,Maven会将其复制到target/classes
中,log4j.properties
,Log4j 2.x使用名称log4j2.properties
,如果您坚持使用属性格式,以下是一些提示:
版本2.17.2中引入的或长符号:
name
属性匹配:这一点没有简单说法。
FileAppender
需要一个fileName
: