【问题标题】:Extra info messages from Struts appearing during Weblogic 12c startupWeblogic 12c 启动期间出现的来自 Struts 的额外信息消息
【发布时间】:2014-01-28 07:31:37
【问题描述】:

我有一个使用 Struts2 (2.3.15.3) 构建的 Web 应用程序,用于部署在 Oracle Weblogic 12c 上的 MVC。 Web 应用程序运行良好,只是当它部署在 Weblogic 中时,它会从 Weblogic 标准 IO 上的 struts 代码中打印一些额外的信息消息,这不是必需的。

我尝试通过将最小严重性调整为日志值并将日志实现从默认 JDK 更改为 log4j 来配置 Weblogic 日志服务,但这也无济于事。

它不断将这些信息消息从 struts 打印到 std 输出。我想我最不想做的就是玩LogFilterMBean 并编写一个自定义日志过滤器。围绕这些有什么建议吗? TIA

Jan 28, 2014 12:21:44 PM IST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING.> 
2014-01-28 12:21:48,352:INFO   :[ACTIVE] ExecuteThread: '0' for queue:    'weblogic.kernel.Default (self-tuning)': Parsing configuration file [struts-default.xml]              [system]: XmlConfigurationProvider 
2014-01-28 12:21:48,410:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Unable to locate configuration files of the name struts-plugin.xml, skipping [system]: XmlConfigurationProvider 
2014-01-28 12:21:48,411:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Parsing configuration file [struts-plugin.xml]               [system]: XmlConfigurationProvider 
2014-01-28 12:21:48,465:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Parsing configuration file [struts.xml]                      [system]: XmlConfigurationProvider 
2014-01-28 12:21:48,469:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.ObjectFactory) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,470:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.FileManagerFactory) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,470:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.XWorkConverter) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,471:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.CollectionConverter) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,471:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.ArrayConverter) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,471:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.DateConverter) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,472:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.NumberConverter) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,472:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.StringConverter) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,472:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,472:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionFileProcessor) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,473:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,473:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.TypeConverterCreator) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,473:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.TypeConverterHolder) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,473:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.TextProvider) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,473:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.LocaleProvider) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,473:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.ActionProxyFactory) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue:  'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ObjectTypeDeterminer) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (org.apache.struts2.dispatcher.mapper.ActionMapper) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (jakarta) for (org.apache.struts2.dispatcher.multipart.MultiPartRequest) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (org.apache.struts2.views.freemarker.FreemarkerManager) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (org.apache.struts2.views.velocity.VelocityManager) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (org.apache.struts2.components.UrlRenderer) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,474:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.validator.ActionValidatorManager) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,475:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.util.ValueStackFactory) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,475:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionProvider) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,475:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionContextFactory) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,475:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.util.PatternMatcher) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,475:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (org.apache.struts2.dispatcher.StaticContentLoader) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,475:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.UnknownHandlerManager) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,476:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (org.apache.struts2.views.util.UrlHelper) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,476:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Choosing bean (struts) for (com.opensymphony.xwork2.util.TextParser) [system]: BeanSelectionProvider    
2014-01-28 12:21:48,690:INFO   :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': WebLogic server detected. Enabling Struts parameter            

【问题讨论】:

    标签: java logging struts2 weblogic weblogic12c


    【解决方案1】:

    您可以使用xwork.loggerFactory 系统属性来指定自定义记录器工厂以与 Struts2 框架一起使用。默认情况下,它会按照出现的顺序选择 commons logging 或 slf4j。 logger工厂的写法可以找here.

    对于使用 log4j 进行公共日志记录,您可以配置 log4j 配置文件,例如属性

    log4j.logger.org.apache=ERROR,Console
    log4j.logger.com.opensymphony.xwork2=ERROR,Console
    log4j.logger.com.opensymphony.xwork2.interceptor=ERROR
    log4j.logger.com.opensymphony.xwork2.ognl=ERROR
    log4j.logger.freemarker=ERROR,Console
    

    在我的情况下,您使用的附加程序是 Console,但您可以更改它。服务器应立即通过抑制INFO 级别对此做出反应。

    【讨论】:

    • 感谢 Roman,但在我的应用程序中,我已经使用了 log4j 和 commons 日志记录,但它只有在应用程序初始化并且工作正常后才会启动。而且我不想编写 LoggerFactory 实现,尤其是在应用程序运行时来自 struts 的所有日志记录,除了这个可以正常工作。
    • 当然,它会在答案中添加额外的信息。
    • 这成功了!我从我的 log4jconfig.xml 中为 logger.com.opensymphony.xwork2.* 删除了“console”appender-ref,同时仍将日志级别保持为 VERBOSE,以便我可以看到日志文件中的日志,但看不到应用服务器控制台中的日志。谢谢
    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2021-03-08
    相关资源
    最近更新 更多