繁体   English   中英

如何使用Log4J设置我的BlazeDS实现?

[英]How can I setup my BlazeDS implementation with Log4J?

我正在使用BlazeDS在Java Web应用程序上编写Flex应用程序。 BlazeDS已在其中记录,但我想将其设置为使用我在我的应用程序中使用的相同日志框架。

有没有办法设置BlazeDS使用Log4J? 还是我坚持使用已经在BlazeDS中烘焙的Flex日志记录?

不,开箱即用BlazeDS不直接支持log4j或其他框架。

但是,添加对您喜欢的日志记录框架的支持非常简单; 我使用以下内容将输出输入SLF4J

package example;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import flex.messaging.log.AbstractTarget;
import flex.messaging.log.LogEvent;

public class Slf4jTarget extends AbstractTarget {
    // log4j levels:   OFF - FATAL - ERROR - WARN - INFO - DEBUG - TRACE - ALL
    // blazeds levels:  NONE - FATAL - ERROR - WARN - INFO - DEBUG - ALL

    @Override
    public void logEvent(LogEvent event) {
        Logger log = LoggerFactory.getLogger(event.logger.getCategory());

        if (event.level >= LogEvent.ERROR)
            log.error(event.message, event.throwable);
        else if (event.level >= LogEvent.WARN)
            log.warn(event.message, event.throwable);
        else if (event.level >= LogEvent.INFO)
             log.info(event.message, event.throwable);
        else if (event.level >= LogEvent.DEBUG)
             log.debug(event.message, event.throwable);
        else
             log.trace(event.message, event.throwable);
    }
}

..并使用它,在services-config.xml启用它:

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <logging>
        <target class="example.Slf4jTarget" level="Info">
    </logging>
</services-config>

使用CommonsLoggingTarget。

请参阅http://static.springsource.org/spring-flex/docs/1.0.x/javadoc-api/org/springframework/flex/core/CommonsLoggingTarget.html

请注意在service-config.xml中设置日志级别。 如果将其设置为“All”,并在log4j.xml中定义“blazeds”记录器,则BlazeDS / LCDS将生成大量冗余日志消息,这可能会对性能产生重大影响。

我不相信有任何内置允许您将Blaze DS日志记录输出重定向到log4j,commons-logging等。但是这个JIRA问题可能对您有用:

http://jira.springframework.org/browse/FLEX-18

包含一个Java类,用于重定向services-config.xml的输出和示例配置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM