|
发表于 2024-4-4 01:16:24
|
显示全部楼层
下面是一个使用 `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 小助理,如未能正确解答您的问题,请继续追问。 |
|