相关疑难解决方法(0)

什么是YAML中的log4j2示例默认配置文件?

所述文档为log4j2配置提供了一个很好的示例XML相当于默认配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

等效文件看起来像(有效)YAML?

yaml log4j2

26
推荐指数
1
解决办法
1万
查看次数

帮助我正确获取log4j2

我是新手,可以使用AWS Java Lambda Cloud Watch实现log4j2。我需要自定义日志,而不是云监视日志。我正在使用step函数上传一个大尺寸的csv记录,因此内置的云手表会重复记录同一件事。所以我打算用我的java lambda添加log4j2。为此,我在pom.xml中添加了以下依赖项

    <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-lambda-java-log4j2</artifactId>
    <version>1.0.0</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.8.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.8.2</version>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

然后在src / main / resources下添加log4j2.xml。log4j2.xml如下所示

<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
  <Appenders>
    <Lambda name="Lambda">
      <PatternLayout>
          <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
      </PatternLayout>
    </Lambda>
  </Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Lambda" />
    </Root>
  </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

之后,检查日志,我创建了一个aws java lambda项目,我的代码如下所示。

 package com.amazonaws.lambda.demo;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.S3Object;

import com.amazonaws.services.stepfunctions.AWSStepFunctions;
import com.amazonaws.services.stepfunctions.AWSStepFunctionsClientBuilder;
import com.amazonaws.services.stepfunctions.model.StartExecutionRequest;

import …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services amazon-cloudwatch log4j2 amazon-cloudwatchlogs

2
推荐指数
1
解决办法
1195
查看次数

使用 Intellij 和 Kotlin 找不到 Log4j2 配置

我用 Gradle 和 Kotlin DSL 构建脚本构建了一个新的 IntelliJ 项目,只有 Kotlin (Java) 和 Java 版本 10.0.2 作为项目 SDK。

我将 log4j 的依赖项添加到 build.gradle.kts 中:

compile("org.apache.logging.log4j:log4j-api:2.11.1")
compile("org.apache.logging.log4j:log4j-core:2.11.1")
Run Code Online (Sandbox Code Playgroud)

我将一个 log4j2.yaml 文件放入 /src/main/resources 并进行了一些配置。

当我现在运行这个测试程序时:

import org.apache.logging.log4j.LogManager

fun main(args: Array<String>) {
    val logger = LogManager.getLogger()!!

    logger.warn("Warn")
    logger.info("Info")
    logger.debug("Debug")
}
Run Code Online (Sandbox Code Playgroud)

我没有得到日志输出但是这条消息

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea kotlin log4j2

2
推荐指数
1
解决办法
2012
查看次数