我正在使用Graylog作为中央日志服务器,并使用gelf log4j2-appender将日志消息发送到Graylog。这很好用。现在,我创建了一个应用程序的Docker镜像,并且可以将软件作为Docker容器运行。
使用Docker,我还记录stdout(console-appender)以将应用程序日志记录到Docker中(docker logs {containerId})。
现在,我想知道是否可以省略gelf log4j2-appender,而是使用gelf的Docker日志驱动程序/插件。(请参见https://docs.docker.com/engine/admin/logging/overview/) 这里的最佳实践是什么? 我认为使用docker日志插件会将整个字符串消息发送到graylog,而graylog需要从该字符串中提取元信息(因此我需要在日志消息中提供此元数据,例如日志级别)。这可能会导致graylog端的资源消耗更多,并且无法配置docker仅将错误消息发送到graylog。这会导致更多的网络流量。使用log4j2 gelf-appender,我可以提供一些附加的元数据,而不将其包含在主日志消息中,并且在graylog端不需要提取。还可以通过日志级别配置应将哪些消息发送到graylog。或者我错了吗?什么是最佳解决方案,每种发送日志到graylog的方式的利弊是什么?
使用Docker,我还记录stdout(console-appender)以将应用程序日志记录到Docker中(docker logs {containerId})。
现在,我想知道是否可以省略gelf log4j2-appender,而是使用gelf的Docker日志驱动程序/插件。(请参见https://docs.docker.com/engine/admin/logging/overview/) 这里的最佳实践是什么? 我认为使用docker日志插件会将整个字符串消息发送到graylog,而graylog需要从该字符串中提取元信息(因此我需要在日志消息中提供此元数据,例如日志级别)。这可能会导致graylog端的资源消耗更多,并且无法配置docker仅将错误消息发送到graylog。这会导致更多的网络流量。使用log4j2 gelf-appender,我可以提供一些附加的元数据,而不将其包含在主日志消息中,并且在graylog端不需要提取。还可以通过日志级别配置应将哪些消息发送到graylog。或者我错了吗?什么是最佳解决方案,每种发送日志到graylog的方式的利弊是什么?