В настоящее время у меня есть отличное приложение Spring Boot, работающее как образ Docker в экземпляре GCP Compute Engine. В своем приложении я добавил аннотацию lombok @ Slf4j, а в основном методе добавил строку log.info("Hello world");
, запустил изображение в моем экземпляре GCE с помощью docker run -d --rm -it -p 8888:8080 {image}
и проверил журналы Stackdriver.
Я ожидал, чтобыть в состоянии фильтровать через уровень журнала (INFO, WARNING и т. д.), но кажется, что журналы не отображают уровень журнала должным образом, то есть они отображаются только при выборе фильтра «уровень журнала: любой».
Приведенный выше оператор log.info () отображается в Stackdriver следующим образом:
[2m2019-10-01 17:55:41.159[0;39m [32m INFO[0;39m [35m1[0;39m [2m---[0;39m [2m[nio-8080-exec-5][0;39m [36mc.g.o.Application [0;39m [2m:[0;39m Hello world
с полезной нагрузкой Json:
jsonPayload: {
container: {}
instance: {}
message: "[2m2019-10-01 17:55:41.159[0;39m [32m INFO[0;39m [35m1[0;39m [2m---[0;39m [2m[nio-8080-exec-5][0;39m [36mc.g.o.Application [0;39m [2m:[0;39m Hello world" }
и "logname" равно projects/my-project/logs/gcplogs-docker-driver
.
Почему Stackdriver не захватывает уровни журнала из Slf4j, даже если используется gcplogs-docker-driver?