管理输出¶
默认情况下,fab
工具非常详细,并打印出几乎所有可能的东西,包括远程端的stderr和stdout流,正在执行的命令字符串等等。虽然这在许多情况下是必要的,以便知道正在发生什么,任何非平凡的织物任务将很快变得难以跟随,因为它运行。
输出电平¶
为了帮助组织任务输出,结构输出被分组成多个不重叠的级别或组,每个可以独立地打开或关闭。这提供了对向用户显示的内容的灵活控制。
注解
默认情况下,所有级别(debug
和 exceptions
除外)都处于启用状态。
标准输出电平¶
标准原子输出电平/组如下:
状态:状态消息,即注意Fabric完成运行时,如果用户使用键盘中断,或当服务器断开连接时。这些消息几乎总是相关的,很少冗长。
中止:中止消息。像状态消息,这些应该真的只有关闭时使用Fabric作为库,甚至可能不是。注意,即使这个输出组被关闭,中止仍然会发生 - 只是不会有任何输出关于为什么Fabric中止!
警告:警告消息。当期望给定操作失败时,例如当使用
grep
来测试文件中的文本的存在时,这些常常被关闭。如果与将env.warn_only
设置为True配对,当远程程序失败时,这可能导致完全无声的警告。与aborts
一样,此设置不会控制实际的警告行为,仅控制警告消息是打印还是隐藏。运行:正在执行的命令或文件传输的打印输出,例如。
[myserver] run: ls /var/www
。还控制正在运行的任务的打印,例如。[myserver] Executing task 'foo'
。标准输出:本地或远程,stdout,即命令的无错误输出。
stderr:本地或远程,stderr,即命令的错误相关输出。
在 0.9.2 版更改: 将“执行任务”行添加到 running
输出级别。
在 0.9.2 版更改: 添加了 user
输出电平。
调试输出¶
还有两个原子输出电平可用于故障排除:debug
(其行为与其他操作略有不同)和 exceptions
(其行为包含在 debug
中,但可以单独启用)。
调试:打开调试(默认情况下关闭)。目前,这主要用于查看正在运行的“完整”命令;以这个
run
呼叫为例:run('ls "/home/username/Folder Name With Spaces/"')
通常,
running
线路将精确地显示传递给run
的内容,如此:[hostname] run: ls "/home/username/Folder Name With Spaces/"
使用
debug
,并且假设您已将 shell 设置为True
,您将看到传递到远程服务器的字面的完整字符串:[hostname] run: /bin/bash -l -c "ls \"/home/username/Folder Name With Spaces\""
启用
debug
输出还将在中止期间显示完整的Python跟踪(如果已启用exceptions
输出)。注解
在修改其他输出(例如在上面的例子中,它修改“运行”行显示shell和任何转义字符),这个设置优先于其他;因此如果
running
为False,但debug
为True,则仍然会在调试窗体中显示“running”行。异常:当发生异常时允许显示回溯;用于当
debug
设置为False
但仍然对详细的错误信息感兴趣。
在 1.0 版更改: 调试输出现在包括中止期间的完整Python跟踪。
在 1.11 版更改: 添加了 exceptions
输出电平。
输出电平别名¶
除了上面的原子/独立级别,Fabric还提供了一些方便的别名,映射到多个其他级别。这些可以在其他级别被引用的任何地方被引用,并且将有效地切换它们被映射到的所有级别。
输出:映射到
stdout
和stderr
。当你只关心看到’running’行和你自己的print语句(和警告)时有用。一切:包括
warnings
,running
,user
和output
(见上文)。因此,当关闭everything
时,您只会看到一个最小的输出(只有status
和debug
,如果它打开),以及您自己的打印语句。命令:包括
stdout
和running
。适用于完全隐藏非错误命令,同时仍显示任何stderr输出。
在 1.4 版更改: 添加了 commands
输出别名。
隐藏和/或显示输出电平¶
您可以通过多种方式切换Fabric的任何输出级别;例如,请参阅每个项目符号链接的API文档:
直接修改fabric.state.output:
fabric.state.output
是一个字典子类(类似于 环境),其键是输出级别名称,其值为True(显示特定类型的输出)或False(隐藏它)。fabric.state.output
是输出级别的最低级别实现,是Fabrics内部组件在决定是否打印输出时引用的内容。上下文管理器:
hide
和show
是双字节上下文管理器,它将一个或多个输出级别名称作为字符串,并在包装块中隐藏或显示它们。与Fabric的其他上下文管理器一样,当块退出时,会恢复先前的值。命令行参数:您可以使用 fab 选项和参数 的
--hide
和/或--show
参数,它们的行为完全类似于相同名称(但自然地,全局应用)的上下文管理器,并以逗号分隔字符串作为输入。