亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 spring boot 創建自定義附加程序以將日志消息輸出到文本區域

使用 spring boot 創建自定義附加程序以將日志消息輸出到文本區域

慕容森 2023-05-17 17:47:38
我無法創建我的類的實例,因為不知道如何在 log4j.xml 的 createAppender 方法中傳遞所需的參數。例外:ru.appliedtech.desktopapp.client.ui.menu.JTextAreaAppender 中構造函數的參數 0 需要找不到類型為“java.lang.String”的 bean??紤]在您的配置中定義類型為“java.lang.String”的 bean。@Plugin(name = "JTextAreaAppender", category = "Core", elementType = "appender", printObject = true)@Configuration@ComponentScan("ru.appliedtech")public class JTextAreaAppender extends AbstractAppender{    private int maxLines = 0;    private static volatile ArrayList<JTextArea> jTextAreaList = new ArrayList<>();    protected JTextAreaAppender(String name, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions, Property[] properties)    {        super(name, filter, layout, ignoreExceptions, properties);    }    @PluginFactory    public static JTextAreaAppender createAppender(@PluginAttribute("name") String name,                                                   @PluginAttribute("ignoreExceptions") boolean ignoreExceptions,                                                   @PluginElement("Layout") Layout<?> layout,                                                   @PluginElement("Filters") Filter filter,                                                   @PluginElement("Properties") Property[] properties) {        return new JTextAreaAppender(name, filter, layout, ignoreExceptions, properties);    }    /**     * add the target JTextArea to be populated and updated by the logging information     * @param textArea text area     */    public static void addTextArea(final JTextArea textArea) {        JTextAreaAppender.jTextAreaList.add(textArea);    }    @Override    public void append(LogEvent event)    {        //    }}log4j.xml<?xml version="1.0" encoding="UTF-8"?><Configuration status="ERROR" packages="ru.appliedtech.desktopapp.client.ui.menu">    <Properties>        <Property name="APP_LOG_ROOT">ru.appliedtech</Property>    </Properties>
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

rgoers 是對的,您的 Log4j 插件類上有 Spring 注釋很奇怪。 @Configuration@ComponentScan應該在那里。先把那些去掉。順便說一下,有時(在調試 log4j2 配置時)將狀態設置為DEBUGlike很有用

<Configuration status="ERROR"

如果您的插件未被識別,可能是您沒有進行注釋處理。如果您使用的是 Gradle,請務必添加log4j-coreannotationProcessor依賴項。

annotationProcessor 'org.apache.logging.log4j:log4j-core'

如果您使用的是 IntelliJ,請務必在 Preferences -> Build,Execution, Deployment -> Compiler -> Annotation Processors -> Enable annotation processing 中啟用 Annotation processing。

如果沒問題,Log4J 應該會檢測到您的 Appender 插件,這是本問題的主題。


查看完整回答
反對 回復 2023-05-17
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

該錯誤消息是來自 Log4j 還是 Spring?為什么在應該由 Log4j 實例化的類上有 Spring 注釋?



查看完整回答
反對 回復 2023-05-17
  • 2 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號