Ajuda com Ant + Log4j [RESOLVIDO]

2 respostas
joaosouza

Oi pessoal estou precisando da ajuda de vc’s pois preciso fazer com que o Ant criei um arquivo .war na pasta do Tomcat e dentro dele tenha o log4j.properties. No momento o Ant está criando o arquivo só que não está incluindo o arquivo do log4j, que está no raiz da aplicação.

Segue abaixo o codigo do build.xml para configurar o Ant:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Project -->

<project name="scp" basedir="." default="all">
	<property name="project.title" value="scp" />
	<property name="dist.name" value="./dist" />
	<property name="war.name" value="scp" />
	<property name="war.dest" value="./dist/${war.name}.war" />
	<property name="war.web-inf" value="./webapp/WEB-INF/web.xml" />
	<property name="war.deploy" value="C:/opt/apache-tomcat-5.5.20/webapps/${war.name}.war" />
	<property name="clean.classes" value="./webapp/WEB-INF/classes" />
	<property name="clean.lib" value="./webapp/WEB-INF/lib" />
	<property name="lib" value="./webapp/WEB-INF/lib" />
	<property name="src.dir" value="./" />
	<property name="compile.dest" value="./webapp/WEB-INF/classes" />
	<property name="deploy.name" value="./opt/apache-tomcat-5.5.20/webapps" />
	<property name="path.lib" value="./webapp/WEB-INF/lib/struts.jar" />
	<property name="path.common" value="C:/opt/apache-tomcat-5.5.20/common/lib/servlet-api.jar" />
	<property name="path.sql" value="C:/opt/apache-tomcat-5.5.20/common/lib/sqljdbc.jar" />
	<property name="path.jsp" value="C:/opt/apache-tomcat-5.5.20/common/lib/jsp-api.jar" />
	<property name="struts.todir" value="./webapp/WEB-INF/lib" />
	<property name="struts.dir" value="C:/opt/lib/struts-1.2.9" />
	<property name="path.log4j" value="C:/opt/lib/log4j-1.2.14/log4j-1.2.14.jar"/>
	<property name="path.commons-logging" value="C:/opt/lib/struts-1.2.9/commons-logging.jar"/>
			
	<!-- Path -->

	<path id="project.class.path">
		<pathelement path="${path.common}" />
		<pathelement path="${path.lib}" />
		<pathelement path="${path.jsp}" />
		<pathelement path="${path.sql}" />
		<pathelement path="${path.log4j}"/>
		<pathelement path="${path.commons-logging}"/>		
		<pathelement path="./classes" />		
	</path>

	<!-- Clean-classes -->

	<target name="clean-classes"
		description="Prepare for clean build">
		<delete dir="${clean.classes}" />
		<mkdir dir="${clean.classes}" />
	</target>

	<!-- Clean-lib -->

	<target name="clean-lib" description="Prepare for clean build">
		<delete dir="${clean.lib}" />
		<mkdir dir="${clean.lib}" />
	</target>

	<!-- Lib -->

	<target name="lib"
		description="Insere arquivos .jar do struts no dir /webapp/WEB-INF/lib">
		<copy todir="${struts.todir}" includeEmptyDirs="no">
			<fileset dir="${struts.dir}">
				<patternset>
					<include name="**/*.jar" />
				</patternset>
			</fileset>
		</copy>
	</target>

	<!-- Compile -->

	<target name="compile" depends="clean-classes,clean-lib,lib">
		<javac srcdir="${src.dir}" destdir="${compile.dest}">
			<classpath refid="project.class.path" />
		</javac>
	</target>

	<!-- Dist -->

	<target name="dist" description="Criar arquivo .war">
		<delete dir="${dist.name}"/>
		<mkdir dir="${dist.name}"/>		
		<war warfile="${war.dest}" webxml="${war.web-inf}" basedir="./webapp" >				
			<fileset dir="${src.dir}" casesensitive="yes">
				<exclude name="**/**"/> 
			</fileset>			
		</war>
	</target>

	<!-- Deploy -->

	<target name="deploy" description="Inserir arquivo .war no Tomcat" depends="dist">
		 <copy file="${war.dest}" tofile="${war.deploy}"/>
	</target>

	<!-- All -->

	<target name="all"
		depends="clean-classes,clean-lib,lib,compile,dist,deploy" />

</project>

O arquivo log4j.properties:

### Imprime diretamente no stdout (System.out) ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}\:%L - %m%n

### Imprime diretamente no scp.log dentro do Tomcat ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=C:/opt/apache-tomcat-5.5.20/logs/scp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}\:%L - %m%n

### Configura nível do log  ###
log4j.rootLogger=warn, stdout, file

### Configura nível do log no pacote ###
log4j.logger.br.com.cpm.scp=debug info

Desde já agradeço a ajuda.

2 Respostas

rodrigo_gomes

Olá,

Manda o Ant copiar os seus properties. Algo parecido com isso deve funfar:

&lt;copy todir="${lugar.onde.quer.colocar.seu.properties}"  verbose="true"&gt;
	&lt;fileset dir="${onde.estah.seu.properties}"&gt;
		      &lt;include name="*.properties"/&gt;
	&lt;/fileset&gt;
&lt;/copy&gt;

é só colocar dentro de uma tarefa ou criar uma tarefa pra isso.

[]´s
Rodrigo

joaosouza

Olá rodrigo_gomes, muito obrigado pela ajuda.

Acrescentei uma tarefa ao Ant como você me mostrou e funcionou direitinho.

Muito Obrigado.

Criado 10 de janeiro de 2007
Ultima resposta 10 de jan. de 2007
Respostas 2
Participantes 2