我正在尝试将Wildfly配置为使用每个部署日志记录和jackson作为json on resteasy的提供程序,但看起来AS无法识别文件“jboss-deployment-structure.xml”。
我想记录hibernate sql,我已经将“<property name="hibernate.show_sql" value="true"/>
”放在persistence.xml中。
对杰克逊来说,我使用以下方法:
@GET
@Path("/resumodia")
@Produces(MediaType.APPLICATION_JSON)
@Consumes("*/*")
@GZIP
public Response resumoHorariosDoDia() {
try {
final ResumoHorariosUsuarioDoDia resumoHorariosDoDia = geradorDeResumoHorarios.getResumoHorariosDoDia(new Date());
return Response.status(OK).entity(resumoHorariosDoDia).build();
} catch (Exception e) {
return Response.status(INTERNAL_SERVER_ERROR).entity("Erro ao processar a requisição: " + e.getMessage()).build();
}
}
该方法有效,但它忽略了我在返回的对象上使用的json注释,如@JsonIgnore
文件就是这个:
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
<exclusions>
<module name="org.jboss.resteasy.resteasy-jackson-provider"/>
<module name="org.jboss.resteasy.resteasy-jettison-provider"/>
</exclusions>
<dependencies>
<module name="org.apache.log4j"/>
<module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
我将文件放在WEB-INF中,但它继续使用wildfly日志记录并忽略我的log4j.xml。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jakarta.apache.org/log4j/
http://jakarta.apache.org/log4j/ ">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %5p [%-20c{1}] %m%n"/>
</layout>
</appender>
<category name="br.com.caelum">
<priority value="INFO"/>
<appender-ref ref="stdout"/>
</category>
<category name="org.hibernate">
<priority value="INFO"/>
<appender-ref ref="stdout"/>
</category>
<category name="org.hibernate.SQL">
<priority value="DEBUG"/>
<appender-ref ref="stdout"/>
</category>
<category name="org.jboss">
<priority value="INFO"/>
<appender-ref ref="stdout"/>
</category>
<category name="org.razor.cponto">
<priority value="INFO"/>
<appender-ref ref="stdout"/>
</category>
</log4j:configuration>
我正在使用VRaptor 4
答案 0 :(得分:0)
如果您只想使用每个部署日志记录,只需将log4j.xml文件与您的部署打包在一起,就不需要弄乱部署描述符。然而,我注意到你的log4j配置试图附加到stdout而不是特定于这个特定部署的实际日志文件,所以它可能实际上正在使用你的新配置,但随后只是被合并到主要由于缺乏合适的appender而导致jboss日志记录