下面是一个使用 `watchdog` 监测日志文件更新的完整示例代码:
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class LogFileEventHandler(FileSystemEventHandler):
def on_modified(self, event):
if event.is_directory:
return
if event.src_path.endswith(".log"):
# 日志文件被修改后的操作
print("日志文件已更新:", event.src_path)
if __name__ == "__main__":
log_file_path = "path/to/log/file.log" # 替换为你的日志文件路径
event_handler = LogFileEventHandler()
observer = Observer()
observer.schedule(event_handler, path=log_file_path, recursive=False)
observer.start()
try:
while True:
pass
except KeyboardInterrupt:
observer.stop()
observer.join()
在代码中,我们定义了一个名为 `LogFileEventHandler` 的自定义事件处理类,继承自 `FileSystemEventHandler`。在 `on_modified()` 方法中,我们可以实现对日志文件被修改后想要执行的操作。
在主程序中,我们指定了日志文件的路径,并通过创建 `Observer` 实例和调度事件处理器来监测日志文件的更新。然后,我们通过 `observer.start()` 启动观察进程,并在 `try-except` 块中等待程序运行。
请将代码中的 `path/to/log/file.log` 替换为你实际的日志文件路径。运行代码后,当日志文件被修改时,会打印出相应的消息。
记得在代码中引入必要的模块和处理异常情况。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |