f_f*_*ola 6 java log4j maven vert.x
我正在开发一个vert.x应用程序.具体来说,我使用的是Java + Eclipse + Maven + Vert.x. 我读到JUL是首选的日志框架,而vertx.log保存在/ tmp下(我是linux用户).实际上,我想使用log4j并在自定义日志文件夹下生成不同的日志文件.我怎样才能做到这一点?vert.x文档说(http://vertx.io/manual.html#logging):
如果您不想使用Vert.x提供的日志工具,那很好.您可以正常使用首选日志记录框架,并在模块中包含日志jar和配置.
所以我试图将log4j依赖项包含到我的pom.xml中,复制src/main/resources中的log4j.xml文件并在我的Verticle类中定义一个logger变量,但是控制台没有打印任何东西......我在哪里做错了?
谢谢Francesco
EDIT1:我的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>it.uniroma1.dis.wsngroup</groupId>
<artifactId>wochat</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>WoChat</name>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Set pullInDeps to true if you want any modules specified in the 'includes' and 'deploys' fields
in your mod.json to be automatically pulled in during packaging and added inside your module. Doing this means your
module won't download and install those dependencies at run-time when they're first requested. -->
<vertx.pullInDeps>false</vertx.pullInDeps>
<!-- Set createFatJar to true if you want to create a fat executable jar which contains the Vert.x binaries
along with the module so it can be run with java -jar <jarname> -->
<vertx.createFatJar>false</vertx.createFatJar>
<!--Vertx module name-->
<module.name>${project.groupId}~${project.artifactId}~${project.version}</module.name>
<!-- The directory where the module will be assembled - you can override this on the command line
with -Dmods.directory=mydir -->
<mods.directory>target/mods</mods.directory>
<!--Dependency versions-->
<vertx.version>2.1M1</vertx.version>
<vertx.testtools.version>2.0.2-final</vertx.testtools.version>
<junit.version>4.11</junit.version>
<!--Plugin versions-->
<maven.compiler.plugin.version>3.0</maven.compiler.plugin.version>
<maven.resources.plugin.version>2.6</maven.resources.plugin.version>
<maven.clean.plugin.version>2.5</maven.clean.plugin.version>
<maven.vertx.plugin.version>2.0.1-final</maven.vertx.plugin.version>
<maven.surefire.plugin.version>2.14</maven.surefire.plugin.version>
<maven.failsafe.plugin.version>2.14</maven.failsafe.plugin.version>
<maven.surefire.report.plugin.version>2.14</maven.surefire.report.plugin.version>
<maven.javadoc.plugin.version>2.9</maven.javadoc.plugin.version>
<maven.dependency.plugin.version>2.7</maven.dependency.plugin.version>
</properties>
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>
<dependencies>
<!--Vertx provided dependencies-->
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-core</artifactId>
<version>${vertx.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-platform</artifactId>
<version>${vertx.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-hazelcast</artifactId>
<version>${vertx.version}</version>
<scope>provided</scope>
</dependency>
<!--Test dependencies-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>testtools</artifactId>
<version>${vertx.testtools.version}</version>
<scope>test</scope>
</dependency>
<!-- Add any other dependencies that you want packaged into your module (in the lib dir) here
as 'compile' dependencies. Here is an example
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>compile</scope>
</dependency>
-->
</dependencies>
<build>
<plugins>
<!-- The vert.x Maven plugin -->
<plugin>
<groupId>io.vertx</groupId>
<artifactId>vertx-maven-plugin</artifactId>
<version>${maven.vertx.plugin.version}</version>
<!--
You can specify extra config to the plugin as required here
<configuration>
<configFile>/path/to/MyVerticle.conf</configFile>
<instances>1</instances>
<classpath>src/main/resources/:src/test/resources/:target/classes/:target/test-classes/</classpath>
</configuration>
-->
<executions>
<execution>
<id>PullInDeps</id>
<phase>prepare-package</phase>
<goals>
<goal>pullInDeps</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Other plugins required by the build -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.resources.plugin.version}</version>
<executions>
<execution>
<id>copy-mod-to-target</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${mods.directory}/${module.name}</outputDirectory>
<resources>
<resource>
<directory>target/classes</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven.dependency.plugin.version}</version>
<executions>
<execution>
<id>copy-mod-dependencies-to-target</id>
<phase>process-classes</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${mods.directory}/${module.name}/lib</outputDirectory>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration>
<includes>
<include>**/unit/*Test*.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven.failsafe.plugin.version}</version>
<configuration>
<systemProperties>
<property>
<name>vertx.mods</name>
<value>${mods.directory}</value>
</property>
</systemProperties>
<includes>
<include>**/integration/**</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven.surefire.report.plugin.version}</version>
<executions>
<execution>
<id>generate-test-report</id>
<phase>test</phase>
<goals>
<goal>report-only</goal>
</goals>
</execution>
<execution>
<id>generate-integration-test-report</id>
<phase>integration-test</phase>
<goals>
<goal>failsafe-report-only</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/mod.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>assemble</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself.
http://stackoverflow.com/questions/8706017/maven-dependency-plugin-goals-copy-dependencies-unpack-is-not-supported-b
-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-dependency-plugin
</artifactId>
<versionRange>[2.7,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven.surefire.report.plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin.version}</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
</plugins>
</reporting>
</project>
Run Code Online (Sandbox Code Playgroud)
EDIT2:我的log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%F:%L] - %m%n" />
</layout>
</appender>
<appender name="Generic_File" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="logs/wochat.log"/>
<param name="Threshold" value="DEBUG"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%F:%L] - %m%n" />
</layout>
</appender>
<appender name="Interactions_Log_File" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="logs/interactions.log"/>
<param name="Threshold" value="INFO"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<appender name="Messages_Log_File" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="logs/messages.log"/>
<param name="Threshold" value="INFO"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<logger name="it.uniroma1.dis.wsngroup.wochat.logging.LogInteraction" additivity="false">
<level value="INFO" />
<appender-ref ref="Interactions_Log_File" />
</logger>
<logger name="it.uniroma1.dis.wsngroup.wochat.logging.LogMessage" additivity="false">
<level value="INFO" />
<appender-ref ref="Messages_Log_File" />
</logger>
<root>
<level value="DEBUG" />
<appender-ref ref="Console" />
<appender-ref ref="Generic_File" />
</root>
</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)
这里是官方主题:https://groups.google.com/forum/#!topic /vertx/xhA9Gze1LM4
作者正在调查为什么它不起作用。与此同时,他建议使用:
-Dlog4j.configuration=file:./your_path/log4j.xml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5194 次 |
| 最近记录: |