要在Python中记录执行命令的日志,您可以使用内置的logging
模块。以下是一个简单的示例,展示了如何配置和使用logging
模块来记录日志:
import logging
import subprocess
# 配置日志记录器
logging.basicConfig(filename='command_execution.log', level=logging.INFO, format='%(asctime)s - %(message)s')
# 要执行的命令
command = "echo 'Hello, World!'"
try:
# 执行命令
result = subprocess.run(command, shell=True, check=True, text=True, capture_output=True)
# 记录命令执行结果
logging.info(f"Command executed successfully: {command}")
logging.info(f"Output: {result.stdout}")
except subprocess.CalledProcessError as e:
# 记录命令执行失败
logging.error(f"Command failed: {command}")
logging.error(f"Error: {e.stderr}")
在这个示例中,我们首先导入了logging
和subprocess
模块。然后,我们使用basicConfig
方法配置了日志记录器,将日志信息写入名为command_execution.log
的文件中,并设置了日志级别为INFO
。我们还定义了一个格式化字符串,用于记录日志的时间戳和消息。
接下来,我们定义了一个要执行的命令(在这个例子中是echo 'Hello, World!'
),并使用subprocess.run
方法执行它。我们设置了shell=True
以便在shell环境中运行命令,check=True
以便在命令失败时引发异常,text=True
以便以文本模式获取输出,以及capture_output=True
以便捕获命令的输出。
在try
块中,我们执行命令并将结果存储在result
变量中。然后,我们使用logging.info
方法记录命令执行成功以及输出结果。
如果在执行命令时发生异常,我们将在except
块中捕获它,并使用logging.error
方法记录命令执行失败以及错误信息。