我在 Windows 2008 R2 机器上设置了 Confluence 3.5 站点。它使用 Tomcat 6,我已将其配置为使用 log4j 对特定空间进行访问日志记录。日志记录工作正常,但现在我想在 .NET 中编写一个 Windows 服务来每天对日志数据进行一些特定的解析。在我的服务中,我使用 File.ReadAllText 读取了整个文件(文件本身不大,也不是 XML)。但是当它尝试这样做时,我得到一个 IO 异常,表明该文件正在被另一个进程使用。
我已经尝试了各种方法来解决这个问题,但到目前为止我似乎无法从代码中读取日志文件。我可以登录到服务器并使用 Windows 资源管理器复制它。但是如果我尝试在服务中这样做,我会得到同样的错误。我在网上查看了读取日志文件的方法,或者可能将记录器更改为不以独占方式打开文件,但我没有找到任何东西。我不确定首先打开文件的是 Confluence、Tomcat 还是 log4j。
关于如何使用自定义程序从访问日志中读取的任何建议?