2017-02-25 5 views
0

wildfly ASをコンテナとして使用するロギングとプリンタ管理に問題があります。SpringMVCアプリケーションでのWidflyロギング設定

eclipseツールを使用してデフォルトのspringMVCアプリケーションを設定しました。このプロジェクトはデフォルトでlog4j.xmlというファイルに設定されています。これをwildflyにデプロイすると、すべてのロガーが無視されます。

グーグル上でいくつかの検索をした後で、サーバー上で行わなければならない設定があることがわかったstandalone.xmlファイル側。

の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>ma.mrer</groupId> 
     <artifactId>net</artifactId> 
     <name>SpringMVC</name> 
     <packaging>war</packaging> 
     <version>1.0.0-BUILD-SNAPSHOT</version> 
     <properties> 
      <java-version>1.6</java-version> 
      <org.springframework-version>3.1.1.RELEASE</org.springframework-version> 
      <org.aspectj-version>1.6.10</org.aspectj-version> 
      <org.slf4j-version>1.6.6</org.slf4j-version> 
     </properties> 
     <dependencies> 
      <!-- Spring --> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-context</artifactId> 
       <version>${org.springframework-version}</version> 
       <exclusions> 
        <!-- Exclude Commons Logging in favor of SLF4j --> 
        <exclusion> 
         <groupId>commons-logging</groupId> 
         <artifactId>commons-logging</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-webmvc</artifactId> 
       <version>${org.springframework-version}</version> 
      </dependency> 

      <!-- AspectJ --> 
      <dependency> 
       <groupId>org.aspectj</groupId> 
       <artifactId>aspectjrt</artifactId> 
       <version>${org.aspectj-version}</version> 
      </dependency> 

      <!-- Logging --> 
      <dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-api</artifactId> 
       <version>${org.slf4j-version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>jcl-over-slf4j</artifactId> 
       <version>${org.slf4j-version}</version> 
       <scope>runtime</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-log4j12</artifactId> 
       <version>${org.slf4j-version}</version> 
       <scope>runtime</scope> 
      </dependency> 
      <dependency> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
       <version>1.2.15</version> 
       <exclusions> 
        <exclusion> 
         <groupId>javax.mail</groupId> 
         <artifactId>mail</artifactId> 
        </exclusion> 
        <exclusion> 
         <groupId>javax.jms</groupId> 
         <artifactId>jms</artifactId> 
        </exclusion> 
        <exclusion> 
         <groupId>com.sun.jdmk</groupId> 
         <artifactId>jmxtools</artifactId> 
        </exclusion> 
        <exclusion> 
         <groupId>com.sun.jmx</groupId> 
         <artifactId>jmxri</artifactId> 
        </exclusion> 
       </exclusions> 
       <scope>runtime</scope> 
      </dependency> 

      <!-- @Inject --> 
      <dependency> 
       <groupId>javax.inject</groupId> 
       <artifactId>javax.inject</artifactId> 
       <version>1</version> 
      </dependency> 

      <!-- Servlet --> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>servlet-api</artifactId> 
       <version>2.5</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>javax.servlet.jsp</groupId> 
       <artifactId>jsp-api</artifactId> 
       <version>2.1</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>jstl</artifactId> 
       <version>1.2</version> 
      </dependency> 

      <!-- Test --> 
      <dependency> 
       <groupId>junit</groupId> 
       <artifactId>junit</artifactId> 
       <version>4.7</version> 
       <scope>test</scope> 
      </dependency>   
     </dependencies> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.1</version> 
        <configuration> 
         <source>1.8</source> 
         <target>1.8</target> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </project> 

HomeController.java

package ma.mrer.net; 

    import java.text.DateFormat; 
    import java.util.Date; 
    import java.util.Locale; 

    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    import org.springframework.stereotype.Controller; 
    import org.springframework.ui.Model; 
    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RequestMethod; 

    /** 
    * Handles requests for the application home page. 
    */ 
    @Controller 
    public class HomeController { 

     private static final Logger logger = LoggerFactory.getLogger(HomeController.class); 

     /** 
     * Simply selects the home view to render by returning its name. 
     */ 
     @RequestMapping(value = "/", method = RequestMethod.GET) 
     public String home(Locale locale, Model model) { 
      logger.info("Welcome home! The client locale is {}.", locale); 

      Date date = new Date(); 
      DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); 

      String formattedDate = dateFormat.format(date); 

      model.addAttribute("serverTime", formattedDate); 

      return "home"; 
     } 

    } 

私はuが私にこの問題を解決する方法を与えることができることを望む男。

私はWildfly 8.2.0バージョンを使用しています。

答えて

0

slf4jを使用している場合は、org.slf4j:slf4j-api<scope>provided</scope>とマークする必要があります。 WildFlyでロギングサブシステムを使用する場合、他のslf4jとlog4jの依存関係は必要ありません。

log4j.xmlをslf4jで使用する場合、最も簡単な解決策はjboss-deployment-structure.xmlを作成し、ロギングサブシステムを除外することです。

ロギング設定ファイルを使用する場合、ログ設定に加えたい変更には、アプリケーションの再デプロイが必要です。 WildFlyロギングサブシステムを使用すると、再ロードや再デプロイメントを必要とせずに、ほとんどの変更を実行時に行うことができます。

関連する問題