为什么System.out.printlin和Logger无法在我的websocket中工作?

问题描述 投票:0回答:1

任何人都可以告诉我为什么为什么我没有从班级中记录任何内容以及为什么我使用System.out.println打印的内容却没有显示在日志中或控制台上?

我的websocket端点类被命名为“ org.america3.websockets.sockets.WSEndPoint”

我知道它已成功以.WAR包(在.EAR包内)部署到Wildfly,因为我的html页面确认它已打开websocket对象。

从我的端点类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;    
@Transient 
    final Logger logger = LoggerFactory.getLogger(WSEndpoint.class);

在我的standalone-full.xml中

<subsystem xmlns="urn:jboss:domain:logging:3.0">
...
  <console-handler name="CONSOLE">
    <level name="INFO"/>
    <formatter>
      <named-formatter name="COLOR-PATTERN"/>
    </formatter>
  </console-handler>
  ...
  <console-handler name="MY-CONSOLE" autoflush="true">
    <formatter>
      <named-formatter name="MY-PATTERN"/>
    </formatter>
    <target name="System.out"/>
  </console-handler>
  ...
  <console-handler name="TEST-HANDLER">
    <level name="INFO"/>
    <formatter>
      <named-formatter name="TEST-PATTERN"/>
    </formatter>
  </console-handler>
  ...
  <periodic-rotating-file-handler name="FILE" autoflush="true">
    <formatter>
      <named-formatter name="PATTERN"/>
    </formatter>
    <file relative-to="jboss.server.log.dir" path="server.log"/>
    <suffix value=".yyyy-MM-dd"/>
    <append value="true"/>
  </periodic-rotating-file-handler>
...
  <logger category="org.america3" use-parent-handlers="false">
    <level name="ALL"/>
    <handlers>
      <handler name="TEST-HANDLER"/>
    </handlers>
  </logger>
...
  <root-logger>
    <level name="INFO"/>
    <handlers>
      <handler name="CONSOLE"/>
      <handler name="FILE"/>
    </handlers>
  </root-logger>
...
  <formatter name="PATTERN">
    <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
  </formatter>
  <formatter name="COLOR-PATTERN">
    <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
  </formatter>
  <formatter name="MY-PATTERN">
    <pattern-formatter pattern="MeMeMe%s%n"/>
  </formatter>
  <formatter name="TEST-PATTERN">
   <pattern-formatter pattern="*** %s%n"/>
  </formatter>
...
</subsystem>
websocket server-side wildfly-10 java.util.logging
1个回答
0
投票

我不确定这是否是唯一的答案,但是确实有效。

最初,我将Endpoint打包在用于部署Session Bean的同一jar中。并将罐子作为我的耳包的一个模块。会话Bean已正确部署和记录。端点没有。

然后,我将我的端点重新部署在战争软件包的META-INF /类下,作为第二个耳模,它可以正常工作。

我确信我读过某个地方,可以将Endpoint和其他类一起部署在耳包中。因此,我不确定是否可以解决我最初没有遇到的其他错误-在重新打包应用程序时,该错误已得到解决。

但是现在它可以正常工作了,所以我将端点保留在war META-INF / classes目录中。

© www.soinside.com 2019 - 2024. All rights reserved.