V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
opengo
V2EX  ›  Linux

[求助] docker logs 自动输出当天零点生成的日志文件

  •  
  •   opengo · 110 天前 · 1081 次点击
    这是一个创建于 110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我使用 docker 部署了一个服务,并且使用 tail -f 输出日志,便于 docker logs 的时候查看

    但是日志文件每天零点会切割,生成一个新的,已日期命名的日志文件,如何自动输出这个新的日志文件内容呢(因为新的日志会写到这个新的日志文件中)?

    • 需要保存日志文件
    • 服务在 docker 里是非前台的

    xdm 想想办法,有啥好的建议吗

    defunct9
        1
    defunct9  
       110 天前
    日志扔到 efk 里面去
    Judoon
        2
    Judoon  
       110 天前
    只能说你这个就不是 docker 最佳实践,没法给建议

    应用直接前台跑,日志直接输出到 docker 的输出,然后采集 docker 的标准输出即可
    opengo
        3
    opengo  
    OP
       110 天前
    @Judoon 主要是想实现两个地方,一个是日志保存到文件,一个是 docker logs 能直接查看实时日志,我看看能不能使用别的办法分割日志吧,让监听的日志文件名不变
    opengo
        4
    opengo  
    OP
       110 天前
    @defunct9 可以尝试一下
    Judoon
        5
    Judoon  
       110 天前
    @opengo docker 本身也是把日志保存到文件的 /var/lib/docker/containers/<container_hash>/下面
    Aliencn
        6
    Aliencn  
       110 天前
    使用 tail -f 输出日志说明日志文件已经落盘了,那就直接把日志目录映射到宿主机上,在宿主机上想怎么看就怎么看
    ch2
        7
    ch2  
       110 天前
    1. 获取完整容器 ID
    docker inspect YOUR_CONTAINER_NAME
    2. 读取完整的 docker 日志
    /var/lib/docker/containers/YOUR_CONTAINER_ID/YOUR_CONTAINER_NAME-json.log
    3. 从里面取出你想要的日志
    ragnaroks
        8
    ragnaroks  
       110 天前
    应当将日志输出到 stdout ,而且默认情况下也应该是这样
    opengo
        9
    opengo  
    OP
       110 天前
    @Aliencn 已经挂载了,就是想偷个懒 docker logs 能直接看到实时日志 [/捂脸]
    opengo
        10
    opengo  
    OP
       110 天前
    @ch2 了解的,看来这种情况想直接 docker logs 看实时日志不太现实
    opengo
        11
    opengo  
    OP
       110 天前
    @ragnaroks 是的,暂时看得使用外部工具进行分割,内部就监听一个日志就行
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1606 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:20 · PVG 01:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.