首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在插件中将log4j日志写入eclipse错误日志视图

如何在插件中将log4j日志写入eclipse错误日志视图
EN

Stack Overflow用户
提问于 2017-04-03 20:38:57
回答 1查看 748关注 0票数 1

我已经使用log4j为自定义日志API创建了一个eclipse RCP插件。我的日志API仅在控制台上打印日志。我想在Eclipse错误日志视图中打印它们。请建议如何在eclipse RCP插件中做到这一点。

我尝试了ILogListner和StatusManager,但没有成功。请给出一些关于此用例的建议或示例代码。

在这里,我编写了自定义附加器,并将此附加器添加到我的记录器中。

代码语言:javascript
运行
复制
public class VirtualConsole extends ConsoleAppender{

      @Override
        public void append(LoggingEvent event) {
            int level = IStatus.INFO;
            if (event.getLevel().equals(Level.ERROR))
                level = IStatus.ERROR;
            IStatus status = new Status(level, event.categoryName,event.getMessage().toString());
            StatusManager.getManager().handle(status, StatusManager.LOG|StatusManager.SHOW);

            //and the normal logging
            super.append(event);
      }
}

LoggerService.java

代码语言:javascript
运行
复制
private static Logger LOGGER = Logger.getLogger(LoggerService.class.getName());
VirtualConsole v = new VirtualConsole();
LOGGER.addAppender(v);

我的log4j.properties文件

代码语言:javascript
运行
复制
#Define root logger options
log4j.rootLogger=debug, console

#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n

LoggerService是一个OSGI服务,它是一个基于log4j的自定义记录器服务。

我有一个客户端代码,它使用这个LoggerService并使用日志方法。每当客户端调用任何LoggerService方法( (i.e loggerService.info("msg") )时,此消息都会记录到控制台中,但我希望登录到eclipse Error视图。

我已经推荐了eclipse plugin development: error logging in log4j to error view

注意:-客户端和服务都是OSGI包。

更新:-我有一个Logger Service OSGI bundle,它将lo4j实例返回给另一个Client OSGI bundle,然后客户端使用这个服务进行日志记录。

EN

回答 1

Stack Overflow用户

发布于 2017-04-04 15:48:21

不久前,我们创建了一个名为slf4j-plus的库,用于将日志集成到Eclipse RCP应用程序hale studio中。它提供了几个扩展slf4j的特性,其中还有一个可以记录到错误视图的附加器。您可以在documentation中找到更多信息。

因此,如果可以选择使用slf4j和logback进行日志记录,则可以使用库(如果没有,至少可以将其用作可以遵循的示例;错误日志的实际日志记录发生在ErrorLogObserver中)。有一个用于log4j (和Apache commons日志等)的日志适配器。要将log4j日志记录路由到slf4j,这是将其与当前日志记录集成的方法。

这是一个包含当前包版本的p2 repository / update site,以防您想要测试它(不包括slf4j和logback包)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43184920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档