我见过使用类似于@terdon的方法。这是高级编程语言称为记录器的开始,并提供完整的库,例如log4J(Java),log4Perl(Perl)等。
set -x
如前所述,您可以在Bash中获得类似的使用,但是您可以使用它来包装代码块,从而仅调试部分命令即可调试。
$ set -x; cmd1; cmd2; set +x
例子
这是您可以使用的一种衬纸图案。
$ set -x; echo "hi" ;set +x
+ echo hi
hi
+ set +x
您可以像这样将它们包装为脚本中的多个命令。
set -x
cmd1
cmd2
set +x
cmd3
Log4Bash
大多数人都没有注意到,但是Bash也有一个log4 *,Log4Bash。如果您的需求比较适中,那么值得花时间进行设置。
log4bash试图更好地记录Bash脚本(即,减少Bash中的记录)。
例子
以下是一些使用log4bash的示例。
#!/usr/bin/env bash
source log4bash.sh
log "This is regular log message... log and log_info do the same thing";
log_warning "Luke ... you turned off your targeting computer";
log_info "I have you now!";
log_success "You're all clear kid, now let's blow this thing and go home.";
log_error "One thing's for sure, we're all gonna be a lot thinner.";
# If you have figlet installed -- you'll see some big letters on the screen!
log_captains "What was in the captain's toilet?";
# If you have the "say" command (e.g. on a Mac)
log_speak "Resistance is futile";
Log4sh
如果您希望我将其归类为log4 *框架的全部功能,请尝试使用Log4sh。
摘抄
log4sh最初是为解决我在某些生产环境中遇到的日志记录问题而开发的,在这些环境中,我的日志过多或不足。尤其是Cron的工作使我最头疼的是,它们不断发出令人讨厌的电子邮件,告诉我一切正常,或者没有任何作用,但没有详细的原因。现在,我在从shell脚本进行日志记录非常重要的环境中使用log4sh,但我需要的不仅仅是一个简单的“您好,请修复我!” 日志消息的类型。如果您喜欢所看到的内容,或对改进有任何建议,请随时给我发送电子邮件。如果对该项目有足够的兴趣,我将进一步开发它。
log4sh是在Linux上的Bourne Again Shell(/ bin / bash)下开发的,但是要小心确保它在Solaris的默认Bourne Shell(/ bin / sh)下工作,因为它恰好是主要产品。我自己使用的平台。
Log4sh支持多个Shell,而不仅仅是Bash。
- 伯恩壳牌(sh)
- 重击-GNU Bourne Again Shell(重击)
- 破折号(破折号)
- Korn Shell(ksh)
- pdksh-Public Domain Korn Shell(pdksh)
它还已经在多个操作系统上进行了测试,而不仅仅是Linux。
- Cygwin(在Windows下)
- FreeBSD(受用户支持)
- Linux(Gentoo,RedHat,Ubuntu)
- Mac OS X
- Solaris 8、9、10
使用log4 *框架需要花费一些时间来学习,但是如果您对日志记录有更高的要求,则值得这样做。Log4sh利用配置文件,您可以在其中定义附加程序并控制将出现的输出的格式。
例
#! /bin/sh
#
# log4sh example: Hello, world
#
# load log4sh (disabling properties file warning) and clear the default
# configuration
LOG4SH_CONFIGURATION='none' . ./log4sh
log4sh_resetConfiguration
# set the global logging level to INFO
logger_setLevel INFO
# add and configure a FileAppender that outputs to STDERR, and activate the
# configuration
logger_addAppender stderr
appender_setType stderr FileAppender
appender_file_setFile stderr STDERR
appender_activateOptions stderr
# say Hello to the world
logger_info 'Hello, world'
现在,当我运行它时:
$ ./log4sh.bash
INFO - Hello, world
注意:以上将追加程序配置为代码的一部分。如果您愿意,可以将其提取到自己的文件中,log4sh.properties
等中。
如果需要更多详细信息,请查阅Log4sh的优秀文档。
set -v
输出部分以及不需要的部分,否则我们无济于事。