2017-04-07 2 views
0

私はすでにstackoverflowとgoogleで検索していますが、私の問題はまだ解決されていません。 、Logback RollingFileAdapterがPayara Serverで期待どおりに機能しない

@Stateless 
public class NotificatrionService implements INotificationService { 
    private final static Logger logger = LoggerFactory.getLogger("DEF"); 
    private final static Logger logger_wsdlr = LoggerFactory.getLogger("wsdlr"); 
: 
: 
} 

そして、特定のケースの下で私はPayara Server 4(安定Glassfishの4)でそれぞれ1

: 
logger_wsdlr.info("Some info messages"); 
: 
logger.debug("Some debug messages")); 
: 

セットアップするにはlogbackを使用します。

問題:コードで

私はこれらのロガーを持っていますこの投稿の@vzamanilloさんが書いた指示に従ってください:

cannot get SLF4J working with glassfish 4

このガイド(または他の発見された)の人々は、ch.qos.logback.core.FileAppenderを使用します。このアペンダーのログバックはきちんと機能しますが、ログファイルをローテーションする必要があります。私は私のコードでRollingFileAppender参照、を使用する場合

<configuration scan="true" debug="true"> 
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
     <resetJUL>true</resetJUL> 
    </contextListener> 
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level][%thread][%logger{36}]%msg%n"/> 
    <property name="dir" value="/tmp/log"/> 
    <appender name="DEF" class="ch.qos.logback.core.FileAppender"> 
     <file>${com.sun.aas.instanceRoot}/logs/my_def.log</file> 
     <append>true</append> 
     <encoder> 
      <Pattern>${pattern}</Pattern> 
     </encoder> 
    </appender> 
    <appender name="WSDLR" class="ch.qos.logback.core.RollingFileAppender"> 
     <file>${dir}/dt_wsdlr.log</file> 
     <append>true</append> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>${dir}/dt_wsdlr-%d{yyyy.MM.dd}.log</fileNamePattern> 
      <maxHistory>90</maxHistory> 
      <totalSizeCap>3GB</totalSizeCap> 
     </rollingPolicy> 

     <encoder> 
      <Pattern>${pattern}</Pattern> 
     </encoder> 
    </appender> 
    <!-- appender that replace payara default server.log, defualt was redirected to ${com.sun.aas.instanceRoot}/tmp/server.log --> 
    <appender name="GF" class="ch.qos.logback.core.FileAppender"> 
     <file>${com.sun.aas.instanceRoot}/logs/server.log</file> 
     <append>true</append> 
     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
      <level>INFO</level> 
     </filter> 

     <encoder> 
      <Pattern>${pattern}</Pattern> 
     </encoder> 
    </appender> 
    <root level="INFO"> 
     <appender-ref ref="GF"/> 
    </root> 

    <logger level="TRACE" name="DEF" additivity="false"> 
     <appender-ref ref="STDOUT"/> 
    </logger> 
    <logger level="DEBUG" name="wsdlr" additivity="false"> 
     <appender-ref ref="WSDLR"/> 
    </logger> 
</configuration> 

アペンダに関連付けられたファイルは、単純に作成されていなかったとログがちょうどが欠落:ちょうどこのような私のlogback.xmlでその後、私だけでセットアップch.qos.logback.core.rolling.RollingFileAppender、。


私は上記の言及ポスト(@casten post)からの手順を適用しようが、ちょうど新しいエラーは、私はちょうど瓶の場所をロールバック

2017-04-07 10:49:25.297 [ERROR][Thread-20][j.e.system.tools.deployment.common]Exception while invoking class com.sun.enterprise.web.WebApplication start method 
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer 
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168) 
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291) 
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:353) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:501) 
    at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406) 
    at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:211) 
    at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:100) 
2017-04-07 10:49:25.297 [ERROR][Thread-20][javax.enterprise.system.core]Exception during lifecycle processing 
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer 
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168) 
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122) 
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291) 
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:353) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:501) 
    at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406) 
    at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:211) 
    at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:100) 

を上げました。

RollingFileAppenderを使用する正しい方法を見つけるお手伝いがありますか?


ありがとうございます!私に

答えて

0

恥...私の問題は、タイプミスでした....

<appender name="WSDLR" class="ch.qos.logback.core.RollingFileAppender"> 
    <file>${dir}/dt_wsdlr.log</file> 
    <append>true</append> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${dir}/dt_wsdlr-%d{yyyy.MM.dd}.log</fileNamePattern> 
     <maxHistory>90</maxHistory> 
     <totalSizeCap>3GB</totalSizeCap> 
    </rollingPolicy> 

    <encoder> 
     <Pattern>${pattern}</Pattern> 
    </encoder> 
</appender> 

正しいクラス参照がch.qos.logback.core.rolling.RollingFileAppender代わりのch.qos.logback.core.RollingFileAppenderです。

+0

問題が解決したことを示す正しい答え(自分のものであっても)としてマークしてください。 – OndrejM

+0

申し訳ありませんが、投稿は削除されましたが、まだ生きています。 – Vielinko

関連する問題