容器文件日志重定向到控制台的另类方法 —— 软链接

一、背景介绍

       我们知道,Docker 容器的日志是需要打印到控制台上才能被有效采集的,至少这是官方的日志输出方案。

       实际工作中,常用命令 docker logs 打印出的也正是 Docker 容器在控制台上输出的信息。

       但现实环境下,大多数应用都会把日志输入到文件中,这给应用的容器化带来了一些困扰。

       要实现日志打印到控制台,是修改 log 配置,还是专门运行一个程序输出日志(如 tail -f xxx.log)?

       这些都不太优雅,笔者偶然在一本书中看到了一种通过软链接对文件日志进行重定向的方法,遂记录下来。

二、通过软链接重定向日志到控制台

       假设我们的日志文件位于:/var/log/demo_access.log、/var/log/demo_server.log、/var/log/demo_error.log

       我们可以通过执行如下命令将其重定向到控制台:

# ln -sfT /dev/stdout "/var/log/demo_access.log"
# ln -sfT /dev/stdout "/var/log/demo_server.log"
# ln -sfT /dev/stderr "/var/log/demo_error.log"

         其中参数意义:

         -s, --symbolic              make symbolic links instead of hard links

         -f, --force            强行删除任何已存在的目标文件

          -T, --no-target-directory   treat LINK_NAME as a normal file always

         这些命令甚至可以直接在 Dockerfile 内预置,容器构建好运行时就能顺利将日志打印到控制台了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值