如何识别日志文件中的更改



我正在尝试编写一个java程序,该程序在文件C:/xampp/apache/logs/access中出现新条目时做出反应.log以便识别对我的Apache服务器的新请求。

我使用了以下代码:

    public static void monitor() throws IOException {
    WatchService watcher = FileSystems.getDefault().newWatchService();

    File file = new File("C:/xampp/apache/logs/");
    Path dir = file.toPath();
    dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY, OVERFLOW);
    for (;;) {
        // wait for key to be signaled
        WatchKey key;
        try {
            key = watcher.take();
        } catch (InterruptedException x) {
            return;
        }
        for (WatchEvent<?> event : key.pollEvents()) {
            WatchEvent.Kind<?> kind = event.kind();

            // get file name
            @SuppressWarnings("unchecked")
            WatchEvent<Path> ev = (WatchEvent<Path>) event;
            Path fileName = ev.context();
            System.out.println(kind.name() + ": " + fileName);
            if (kind == OVERFLOW) {
                continue;
            } else if (kind == ENTRY_CREATE) {
                System.out.println("entry created occured");
                // process create event
            } else if (kind == ENTRY_DELETE) {
                // process delete event
            } else if (kind == ENTRY_MODIFY && fileName.toString().equals("access.log")) {
                System.out.println("entry modified occured");
                // process modify event
            }
        }
        // Reset the key -- this step is critical if you want to
        // receive further watch events. If the key is no longer valid,
        // the directory is inaccessible so exit the loop.
        boolean valid = key.reset();
        if (!valid) {
            break;
        }
    }
}

但是它无法识别访问权限的更改.log直到我手动打开文件。我的代码有问题吗?

有不同的选择。

有两个问题可能有点相似,唯一的区别是他们想要检查整个文件而不仅仅是一个文件,但您可以调整代码以检测修改后的文件是否是您想要的文件。

监视 Java 中更改的目录

Java 检测文件系统中的更改

对于我找到的特定解决方案

http://www.rgagnon.com/javadetails/java-0490.html

此代码启动一个线程,用于检查文件的 lastModified 值,如果它与上一个不同,则表示该文件已被修改。我不知道它是否非常有效,看看他们。

相关内容

  • 没有找到相关文章

最新更新