Caminho genérico para arquivo de log no log4j

Boa tarde,

estou com o seguinte trecho de código no meu log4j.xml:

<appender name="FILE_APP" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="/opt/logs/MinhaApp/minha_app.log" />
		<param name="Append" value="true" />
		<param name="MaxFileSize" value="10240KB" />
		<param name="MaxBackupIndex" value="10" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5.5p [%d{dd MMM HH:mm:ss}] (%25.25C:%4L) - %m%n" />
		</layout>
	</appender>

Quando executo a aplicação, os logs são gerados na raiz do sistema e não na raiz do meu servidor (WebLogic).

Dúvida: como apontar para o caminho do servidor weblogic (ex: c:/oracle/middleware/logs/MinhaApp/minha_app.log) de uma forma genérica?

Pensei em criar uma variável de ambiente mas dessa forma seria necessario setar no sistema, teria como fazer algo mais automático?

Desde já lhes agradeço!

e ai rrccpp,

Cara eu não conheço nada muito automático não. Geralmente que eu faço é passar como parâmetro para aplicação.

Faz muiiiiito tempo que não mecho com weblogic, mas senão me falha a memória ele também tem uma opção aonde você pode passar parâmetros para jvm da aplicação.

No meu caso que é oracle por exemplo, eu coloco um parâmetro log.dir=C:\logs e no log4j eu referencio como se fosse uma variável de ambiente, exemplo: ${log.dir}/meuLog.log

Abraço

Boa tarde maicon,

pensei dessa forma também mas tem o problema de funcionar só localmente.

queria pegar o path no deploy do weblogic e botar no xml ± dessa forma como tu indiciou “$pathWeblogic” aí concatenava com o caminho que queria criar.

pq quando mudar o ambiente, ele sempre vai pegar na raiz do servidor que foi feito o deploy.

Só não entendi uma coisa, como assim só funciona localmente?

Por exemplo, se eu setar num properties log.weblogicpath=c:/oracle vai funcionar na minha maquina.
Mas se o projeto for em um ambiente no qual o oracle está no D:/oracle, ferra tudo!

sacou?

Opa

Pois é eu acho que não consegui me expressar direito hehehe

Vamos lá… No teu log4j tu só vai por ${log.dir}/meuLog.log. E nunca mais precisa alterar nada no log4j. Isso porque se tu for trocar de ambiente com tu falou a unica coisa que tu precisa alterar é o [u]parâmetro[/u] antes de subir a aplicação.

Frisei bem que isso é um parâmetro da jvm hehehe, em nenhum momento falei de properties.

Claro que isso não vai ser “automágico” para cada ambiente tu vai ter que colocar a url certa, pelo menos dessa maneira eu não conheço nada automático… :frowning:

Agora entendi, mas da mesma forma eu preciso setar o endereço.

Tive uma outra idéia aqui mas estou meio limitado: como posso pegar o path do servidor (weblogic) que a aplicação está rodando/foi deployada?

Tem uma forma de executar o log4j como servlet, então pegando o path do server acredito que consiga fazer o que eu preciso.