Eu tenho vários servidores Windows executando várias versões do Tomcat 8 e preciso adquirir o caminho de log do Tomcat em um script do PowerShell para executar funções administrativas com esse script.
O Tomcat supostamente fornece uma API de log contendo essas informações, mas não tive sucesso ao acessá-lo com o PowerShell (e suspeito que isso esteja longe de ser a maneira mais fácil de obter o que quero em qualquer caso). No entanto, notei que, pelo menos para meus servidores Tomcat, o caminho do log é uma subpasta do caminho de instalação do aplicativo, como:
C:\Program Files\Apache Software Foundation\Tomcat 8.0\logs
Então, como posso obter programaticamente esse caminho de log do meu script do PowerShell?
Enquanto procurava sem sucesso por um arquivo de configuração ou configuração de registro que pudesse conter o caminho do diretório de log, me deparei com uma chave de registro que contém o caminho de instalação do próprio aplicativo Tomcat e combinado com o conhecimento de que a pasta de log que procuro está em uma subpasta dessa, chamada
logs
, tenho informações suficientes para que meu script crie o caminho de log.Essa chave de registro estará em um local previsível no registro, e o nome/propriedade "InstallPath" é exclusivo nesse local, portanto, posso simplesmente fazer uma pesquisa recursiva e corresponder "InstallPath" para extrair a pasta de instalação do Tomcat, e anexar
\logs
para obter minha pasta de log.Depois de adicionar uma verificação básica de tratamento de erros, isso se parece com:
Desculpe por não responder diretamente a sua pergunta.
Eu recomendaria usar um CATALINA_BASE separado como faria para várias instâncias. Você pode escolher esse caminho livremente e o diretório de log é os logs abaixo desse caminho.
Consulte https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt para obter mais informações.
Além disso, deve facilitar a atualização do tomcat.