zoukankan      html  css  js  c++  java
  • linux log 写入

    $command  2>&1|tee log/$job_name-$now.log &
    

    $command 表示要跑的命令,比如 python train.py
    2>&1 参考
    https://www.runoob.com/linux/linux-shell-io-redirections.html
    https://www.jb51.net/article/169778.htm
    其中 2 表示标准错误输出; 1 表示标准输出;>& 将两侧的标准输出合并;| 管道,将 |前面的输送到 | 后面

    tee 命令
    从标准输入中复制到每一个文件,并输出到标准输出。
    也就是说 tee命令将管道送来的输入 一方面输出到标准输出屏幕,一方面输出到后面的文件 log/log/$job_name-$now.log
    最后面的 & 表示将这个任务放到后台执行,这个命名可以用于大文件复制终端卡死的情况,这样就能放到后台复制,就可以立即继续在同一个终端上工作了,甚至关闭终端也不影响这个任务的正常执行。
    参考: https://linux.cn/article-10587-1.html?pr

    这样就可以将 标准错误输出 和 标准输出 都进行记录,而普通的记录log的方法在程序运行正常时是能记录的,但是当程序报错时出错的原因则不能记录

  • 相关阅读:
    Java多线程
    SpringCloud
    Java 多线程
    MySQL
    MySQL
    SpringCloud
    SpringCloud
    SpringCloud
    SpringBoot
    Spring MVC
  • 原文地址:https://www.cnblogs.com/qiulinzhang/p/14335973.html
Copyright © 2011-2022 走看看