자바 Logging

자바 11 런타임에서 STDOUT 또는 STDERR에 대한 출력은 Cloud Logging으로 전파됩니다. 하지만 세분화된 로그 심각도 수준은 전파되지 않습니다. 자바 11 런타임에서는 표준 Java Logging API(JUL)를 사용하여 메시지를 로깅하고 Cloud Logging에 올바른 로그 심각도 수준을 전파할 수 있습니다.

SLF4J, Log4j 2, Apache Commons Logging과 같은 다른 로깅 프레임워크를 사용하는 경우 다음 방법 중 하나로 올바른 로그 심각도 수준을 전파할 수 있습니다.

  • 심각도 수준이 Cloud Logging에 전파되도록 구조화된 로깅 JSON 형식으로 로그 메시지의 형식을 지정합니다.
  • 브리지/어댑터를 사용하여 이미 로그 메시지를 올바른 형식으로 전파하는 Java Logging API로 보냅니다. 이 접근 방식을 사용하는 경우 Java Logging API에서 로깅 프레임워크로 이미 라우팅하는 기존 어댑터가 없는지 확인하세요.

함수가 서로 다른 라이브러리를 사용하고 라이브러리가 서로 다른 로깅 프레임워크를 사용하는 경우 사용되는 각 로깅 프레임워크를 구성해야 합니다. 다음 섹션에서는 다양한 옵션을 다룹니다.

Spring Cloud 함수

Spring Cloud Functions GCP 어댑터와 함께 Spring Cloud 함수를 사용하는 경우 Spring Cloud GCP의 로깅 스타터CONSOLE_JSON 어펜더를 사용하여 JSON 형식으로 로그를 출력합니다. Spring은 기본적으로 SLF4J 및 Logback을 사용하지만, SLF4J 로그를 Java Logging API로 라우팅할 수도 있습니다. 자세한 내용은 SLF4J 섹션을 참조하세요.

Java Logging API(JUL)

Cloud Functions 자바 11 환경에는 로그를 올바른 형식으로 출력하는 JSON 핸들러가 있는 자바 Logging이 이미 포함되어 있습니다. 일부 자바 프레임워크는 JUL을 다른 로깅 프레임워크(예: jul-to-slf4j bridge 또는 Log4j JDK Logging 어댑터)와 브리징하기 위해 구성요소를 추가할 수 있으며, 이 로그 메시지의 형식이 더 이상 올바르게 지정되지 않습니다. 로그 메시지의 심각도 수준이 올바르지 않으면 해당 브리지가 삭제되었는지 확인하세요.

SLF4J

SLF4Jslf4j-jdk14 로깅 프레임워크 바인딩을 사용하여 Java Logging API에 로그를 작성할 수 있습니다. 자세한 내용은 SLF4J 문서를 참조하세요. jul-to-slf4j 브리지가 없는지 확인하세요.

Logback

Logback에는 로그 메시지를 Java Logging API로 라우팅하는 어펜더가 없습니다. 그러나 Logback은 일반적으로 SFL4J API와 함께 사용되므로 SLF4J 로거 구현을 Java Logging API로 전환할 수 있습니다.

Log4j 2

Log4j 2에는 로그 메시지를 Java Logging API로 라우팅하는 직접 어댑터가 없습니다. Log4j 2를 사용하는 경우 먼저 Log4J 2-SLF4J 어댑터를 사용하여 메시지를 SLF4J로 라우팅한 다음 Java Logging API 구현을 사용하도록 SLF4J를 구성해야 합니다. Log4j JDK Logging 어댑터가 없는지 확인하세요.

Apache Commons Logging(JCL)

Apache Commons Logging에는 Java Logging API 어댑터가 있습니다. Jdk14Logger를 사용하도록 Commons Logging을 구성합니다. 자세한 내용은 Apache Commons Logging 구성 페이지를 참조하세요.