差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:log4j:extend_appender [2017/01/22 16:49] tony |
java:log4j:extend_appender [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
{{tag>java log4j}} | {{tag>java log4j}} | ||
- | ====== Extend the appender (Working) ====== | + | ====== Extend the appender ====== |
===== Problem ===== | ===== Problem ===== | ||
我替老婆做了某個遊戲外掛,然後我希望能把log內容顯示在畫面上,例如:\\ | 我替老婆做了某個遊戲外掛,然後我希望能把log內容顯示在畫面上,例如:\\ | ||
行 6: | 行 6: | ||
我想透過log4j去通知畫面更新而不是再另開一個api;本篇文章主要告訴大家extend log4j appender的方法去達到這個目的。 | 我想透過log4j去通知畫面更新而不是再另開一個api;本篇文章主要告訴大家extend log4j appender的方法去達到這個目的。 | ||
===== How to? ===== | ===== How to? ===== | ||
- | 原先我的Subject是目前工作的狀態,負責通知的是工作的controller;而Observer則是UI,實作以下介面,Subject有變動會通知它: | + | 原先我的Subject是目前工作的狀態,負責通知的是執行工作的controller;而Observer則是UI,實作以下介面,Subject有變動會通知它: |
<code java> | <code java> | ||
public interface IStateChangedListener { | public interface IStateChangedListener { | ||
行 16: | 行 16: | ||
} | } | ||
</code> | </code> | ||
- | 要達到我們目的,會新增一個Log4j Appender,身負Subject的使命。我們要做以下事情: | + | 接著新增一個名為NotificationAppender的Log4j Appender,要做以下事情: |
- Extend AppenderSkeleton。 | - Extend AppenderSkeleton。 | ||
- 負責Observer的註冊與通知。 | - 負責Observer的註冊與通知。 | ||
行 87: | 行 87: | ||
* [[http://stackoverflow.com/questions/6072389/how-to-create-a-own-appender-in-log4j|how-to-create-a-own-appender-in-log4j]] | * [[http://stackoverflow.com/questions/6072389/how-to-create-a-own-appender-in-log4j|how-to-create-a-own-appender-in-log4j]] | ||
+ | ===== ===== | ||
+ | ---- | ||
+ | \\ | ||
+ | ~~DISQUS~~ | ||