如何使用 Log4J 设置 BlazeDS 实施?

发布于 2024-07-16 05:47:23 字数 176 浏览 5 评论 0原文

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

有没有办法设置 BlazeDS 使用 Log4J? 或者我是否一直坚持使用 BlazeDS 中已经内置的 Flex 日志记录功能?

I'm writing a Flex app on top of a Java web application using BlazeDS. BlazeDS has logging inside of it, but I want to set it up to Use the same logging framework I have in my application.

Is there a way to setup BlazeDS to use Log4J? Or am I stuck with the Flex logging stuff that's already baked into BlazeDS?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

人生戏 2024-07-23 05:47:23

不,开箱即用的 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>

No, out of box BlazeDS does not support log4j or other frameworks directly.

However, it's really simple to add support for your favourite logging framework; I used the following to get the output into 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);
    }
}

.. and to use it, enable it in services-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <logging>
        <target class="example.Slf4jTarget" level="Info">
    </logging>
</services-config>
软的没边 2024-07-23 05:47:23

使用 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 会生成大量冗余日志消息,这可能会对性能产生重大影响。

Use CommonsLoggingTarget.

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

Just be careful with setting log level in service-config.xml. If you set it to "All", and define "blazeds" logger in log4j.xml, then there will be a lot of redundant log messages generated by BlazeDS/LCDS, which might have significant performance impact.

叹沉浮 2024-07-23 05:47:23

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

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

包含用于重定向输出的 Java 类和服务的示例配置-config.xml

I don't believe that there is anything built-in that allows you to redirect Blaze DS logging output to log4j, commons-logging, etc. However this JIRA issue may be of use to you:

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

Includes a Java class to redirect output and sample configuration for services-config.xml

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文