下面的代码是我的bash脚本中日志文件的基本概念:
LOG=/tmp/BACKUP_PROCCESS.log
LOG_DISABLE=FALSE
MY_LOG ()
{
[ $LOG_DISABLE = TRUE ] && return
echo "[`date +%d"/"%b"/"%G"-"%T`] INFO $1" >> $LOG
}
MY_LOG "START TO BACKUP FILES UNDER /VAR/LOG"
字符串
这段代码帮助我理解了bash脚本中的每一步,并对每一步进行了故障排除,但有时候我想禁用日志创建,因为我们不需要它们,我想让脚本更高效(在脚本中的每一行上调用日志函数需要时间,并且会使脚本更繁重)。
所以我的问题是:
禁用日志文件的最佳方法是什么?
到目前为止,我已经通过在log函数内部返回来禁用log函数,但是这个解决方案并不好,因为我仍然调用该函数。
5条答案
按热度按时间svdrlsy41#
有些人希望在每次调用日志函数时插入一个条件检查:
字符串
像我这样的一些人更喜欢删除函数的任何操作:
型
这就是我在logging function中所做的。
brqmpdu12#
您可以将
$LOG
变量设置为/dev/null
,这将导致日志不会被保存到文件中。字符串
/dev/null
非常快,所以我不认为这会比你提前从函数返回的解决方案有任何重大的性能缺点。f3temu5u3#
您可以使用一些文件描述符重定向:
字符串
在文件
test.log
中型
ljsrvy3e4#
我的方式:
字符串
只是根据标志以不同的方式定义函数。你可以用任何一种方式调用这个函数,但我希望true是一个快速的内置函数;)
zf9nrax15#
我有智能解决方案来禁用日志文件
例如,
字符串
命令unset禁用MY_LOG功能
我在true命令中添加别名MY_LOG
意思是MY_LOG会激活的时候,实际上它会激活true命令,而true命令并不真正做任何事情