|  | 
 
 发表于 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 小助理,如未能正确解答您的问题,请继续追问。
 | 
 |