我正在使用BlazeDS在Java web应用程序之上编写一个Flex应用程序。BlazeDS具有日志记录功能,但我希望将其设置为使用与应用程序中相同的日志记录框架。
有没有办法将BlazeDS设置为使用Log4J?或者我被困在已经被BlazeDS烘焙的东西上了?
发布于 2009-04-09 22:38:20
不,开箱即用的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>发布于 2010-01-20 03:10:03
使用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将生成大量冗余日志消息,这可能会对性能产生重大影响。
发布于 2009-04-09 22:29:13
我不相信有任何内置的东西可以让您将Blaze DS日志记录输出重定向到log4j、commons-logging等。
http://jira.springframework.org/browse/FLEX-18
包括重定向输出的Java类和services-config.xml的示例配置
https://stackoverflow.com/questions/734477
复制相似问题