java - log4j:每个 Appender 的属性列表?

标签 java swing log4j jtextarea appender

任务:

我正在尝试配置 Appender 以输出到 JTextArea。我相信 WriterAppender 能够写入 OutputStream。我已经对 OutputStream 进行了子类化以生成 JTextAreaOutputStream 类,该类当前是通过劫持 System.out 和 System.err 的输出来填充的。

配置文件:

    # File appender for the GUI screen
    log4j.appender.gui = org.apache.log4j.WriterAppender
    log4j.appender.gui.Target=project.gui.GUIView.logWindow   //logWindow is the name of my JTextArea

    # Root logger option
    log4j.rootLogger=INFO, gui

错误:

log4j:WARN No such property [target] in org.apache.log4j.WriterAppender.

问题:

有人知道我可以在哪里识别每个 Appender 的有效属性集吗?

最佳答案

你为什么认为WriterAppender有这样的属性吗?据我所知JavaDocs ,它不具有这样的属性。也许您将其与 ConsoleAppender 混淆了?

如果您打开相关的 JavaDoc/源代码并查找所有 JavaBean 样式的 setter 方法,您可以获得每个附加程序的属性列表。这意味着如果 WriterAppender 具有 target 属性,则需要具有 setTarget(...) setter 方法。

无论如何,我建议您子类WriterAppender创建您自己的JTextAreaAppender,它将传入您的自定义OutputStream 到父类(super class)。请参阅ConsoleAppenderFileAppender对于此类子类的样本。

编辑:顺便说一句,由于您很可能需要将对 JTextArea 的引用传递给您的 JTextAreaAppender,我建议您以编程方式配置 log4j。或者至少在引用 JTextArea 后以编程方式添加自定义附加程序。

或者,更好的是,您可以通过属性文件对其进行配置,但将初始 JTextArea 引用保留为空 - 在您的应用程序启动并且您拥有 jTextArea 引用之后,您可以以编程方式查看所有 log4j 附加程序并将引用传递给您的自定义 JTextAreaAppender

关于java - log4j:每个 Appender 的属性列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4268906/

相关文章:

java - ASM : how to easily get proper Opcode based on type

java - 在 Netbeans 7.0 中向 JFrame 添加背景图像时出现问题

java - 如何根据消息级别将消息记录在单独的文件中

java - Log4j2 api在OSGi环境下找不到Log4j2核心

java - 使用 MediaExtractor 和 MediaCodec 在视频播放中跳帧

java - OWL API getAnnotationObjects 方法未定义

java - JAR 文件弄乱了 GUI?

java - Hibernate 4 session log4j

java - 如何在java中动态调整缓存线程池的大小

java - 面板中组件的对齐