如何使用PowerShell获取Tomcat的日志path?

我有许多运行各种版本Tomcat 8的Windows服务器,而且我需要能够在PowerShell脚本中获取Tomcat日志path,以便使用此脚本执行pipe理function。

据称Tomcat提供了一个包含这些信息的日志API ,但是我还没有成功地用PowerShell访问它(并且怀疑这远远不是获得我想要的最简单的方法)。 但是,我注意到,至less对于我的Tomcat服务器,日志path是应用程序安装path的子文件夹,例如:

C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs

那么,如何以编程方式从PowerShell脚本获取此日志path?

虽然没有成功search可能包含日志目录path的configuration文件或registry设置,但是偶然发现了一个包含Tomcat应用程序本身的安装path的registry项,并结合了我所处的日志文件夹的知识一个名为logs的子文件夹,我有足够的信息来为我的脚本创build日志loggingpath。

在这里输入图像说明

此registry项将位于registry中的可预测位置,并且“InstallPath”名称/属性在该位置内是唯一的,因此我可以简单地执行recursionsearch并匹配“InstallPath”以提取Tomcat的安装文件夹,并追加\logs来获得我的日志文件夹。

添加基本​​的error handling检查后,看起来像:

 $FoundRegKey = $null $ApacheRegKeyExists = (Test-Path "HKLM:\Software\Apache Software Foundation") If ($ApacheRegKeyExists) { Get-ChildItem "HKLM:\Software\Apache Software Foundation" -Recurse -ErrorAction SilentlyContinue | ForEach-Object { If ($_.Property -match "InstallPath") {$FoundRegKey = Get-ItemProperty $_.pspath | Select InstallPath} } } Else { Write-Host "Can't find Tomcat software keys in registry, exiting." Exit } If ($FoundRegKey) { $logfolder=($FoundRegKey.InstallPath+"\logs") } Else { Write-Host "Can't find Tomcat install path in registry, exiting." Exit } 

道歉不直接回答你的问题。

我build议使用一个单独的CATALINA_BASE,就像你多实例一样。 您可以自由select该path,并且日志目录是该path下的日志。

有关详细信息,请参阅https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt

另外,它应该使更新tomcat更容易。