linux: tee日志记入文件

本文详细解析了Linux环境下日志输出至文件的操作方法,重点介绍了如何利用2>&1将标准错误输出与标准输出合并至同一文件,以及不同重定向符号(>,>>,>|)的特性和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux写代码,经常用的比较多的是log库:

use log::{error, info, warn};

如果将log输出到 mylog.txt中:

cargo run --relase 2>&1 | tee mylog.txt 

为什么有一个奇怪的“2 >&1”?如果没有,你会在mylog.txt打开后,看到什么?

"2>&1"的含义:

0 stdin,1 stdout,2 stderr

2>&1应该分成两个部分来看,一个是2>以及另一个是&1,

其中2>就是将标准出错重定向到某个特定的地方;&1是指无论标准输出在哪里。

所以2>&1的意思就是说无论标准出错在哪里(哪怕是没有?),都将标准出错重定向到标准输出中。

翻译一下,人话:

就是把错误的也当正常一样输出。

其它:

IO重定向:

输出重定向:>

特性:覆盖输出

输出重定向:>>

特性:追加输出  


禁止覆盖输出重定向至已存在的文件;

此时可使用强制覆盖输出:>|

错误输出流重定向:2>, 2>> 只会将错误的信息输出到指定的地方

合并正常输出流和错误输出流:

(1) &>, &>>

(2) COMMAND > /path/to/somefile 2>&1

    COMMAND >> /path/to/somefile 2>&1

当然,也有重定向输入 <.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值