我正在使用Gradle应用程序插件,并尝试使用Log4J 2实现通过SLF4J配置日志记录。我已经放置了一个log4j2。
:src/main/resources中的属性
文件
.
├── app
│ ├── build
│ │ ├── classes
│ │ │ └── java
│ │ │ └── main
│ │ │ └── log4j
│ │ │ └── App.class
│ │ ├── generated
│ │ │ └── sources
│ │ │ ├── annotationProcessor
│ │ │ │ └── java
│ │ │ │ └── main
│ │ │ └── headers
│ │ │ └── java
│ │ │ └── main
│ │ ├── resources
│ │ │ └── main
│ │ │ └── log4j2.properties
│ │ └── tmp
│ │ └── compileJava
│ │ └── source-classes-mapping.txt
│ ├── build.gradle
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── log4j
│ │ │ └── App.java
│ │ └── resources
│ │ └── log4j2.properties
│ └── test
│ ├── java
│ │ └── log4j
│ │ └── AppTest.java
│ └── resources
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
我的build.gradle
包含Log4j 2 SLF4J绑定(https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/):
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
* User Manual available at https://docs.gradle.org/6.8.1/userguide/building_java_projects.html
*/
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
}
repositories {
// Use JCenter for resolving dependencies.
jcenter()
}
dependencies {
// Use JUnit test framework.
testImplementation 'junit:junit:4.13'
// This dependency is used by the application.
implementation 'com.google.guava:guava:29.0-jre'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.0-alpha1'
implementation 'org.apache.logging.log4j:log4j-slf4j18-impl:2.14.0'
compileOnly 'org.projectlombok:lombok:1.18.16'
annotationProcessor 'org.projectlombok:lombok:1.18.16'
testCompileOnly 'org.projectlombok:lombok:1.18.16'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'
}
application {
// Define the main class for the application.
mainClass = 'log4j.App'
}
还有应用程序。java
读取
package log4j;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class App {
public String getGreeting() {
return "Hello World!";
}
public static void main(String[] args) {
log.debug("Printing a greeting...");
System.out.println(new App().getGreeting());
}
}
而app/src/main/resources
包含以下内容:
# Define the root logger with appender file
log4j.rootLogger = DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
因此,我希望将日志级别设置为DEBUG
,如果我log,则会将一些内容打印到控制台。在应用程序中调试()。但是,如果我
/gradlew运行应用程序我看不到日志行:
> ./gradlew run
> Task :app:run
Hello World!
BUILD SUCCESSFUL in 953ms
3 actionable tasks: 1 executed, 2 up-to-date
但是,我没有看到这样的日志行,这表明配置文件没有被“拾取”。如何让这个Java应用程序获取
log4j2。属性
文件?
您应该使用它的细节来配置log4j2
,而不是log4j
。我的意思是:
appenders = console
appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = LogToConsole
例如如果更改log4j2的内容。属性
通过以上内容,我确实看到了日志记录。
问题内容: 我正在渲染一个模板,尝试使用外部样式表进行样式设置。文件结构如下。 mainpage.html看起来像这样 我的样式均未应用。它与html是我正在渲染的模板有关吗?python看起来像这样。 我知道这很有效,因为我仍然能够渲染模板。但是,当我尝试将样式代码从html的“ head”标记中的“样式”块移动到外部文件时,所有样式消失了,仅留下了一个html页面。有人看到我的文件结构有任何错
我正在使用CreateReact应用程序引导我的应用程序。 我添加了两个文件和。 我的包括: 当我使用
我正在开发一个基于spring boot的web应用程序,希望使用log4j2作为记录器实现。 使用log4j2-spring.xml文件中定义的日志配置,一切都可以正常工作。 不起作用的地方:我想在log4j2-spring.xml文件中使用属性占位符,该占位符应该从用于配置Spring Boot的application.yml文件中定义的属性解析。
src/main/resources/application.properti 为了完整起见,这里是build.gradle: 我构建应用程序:
我正在读取google appengine应用程序中文件夹(/war/config/client.properties)中的属性文件。它在我的本地服务器上运行良好,但在生产模式下不工作,并且抛出异常java。安全AccessControlException:拒绝访问(java.io.FilePermission)。 你能告诉我如何在生产模式下工作吗。
作为log4j2漏洞的一部分,我们正在迁移到log4j2.xml。但在应用程序启动期间,不会拾取新创建的log4j2。我已经执行了以下所有选项,但徒劳。 尝试的选项: 尝试添加和删除log4j-jcl依赖项。 删除了spring-boot-starter日志记录依赖项。 试着用log4j2.properties代替log4j2.xml. 在application.properties.中添加log