要在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
方法记录命令执行失败以及错误信息。