Jindolfプロジェクトは、CGIゲーム「人狼BBS」を快適にプレイするための専用クライアントを製作するために発足したオープンソースプロジェクトです。
Revisão | 1f04b7b359aecfb8bcbe692d5db5e8e79daafab4 (tree) |
---|---|
Hora | 2020-04-22 21:45:44 |
Autor | Olyutorskii <olyutorskii@user...> |
Commiter | Olyutorskii |
remove unused logger.
@@ -30,8 +30,6 @@ public class LandsTreeModel implements TreeModel{ // ComboBoxModelも付ける | ||
30 | 30 | private static final String ROOT = "ROOT"; |
31 | 31 | private static final int SECTION_INTERVAL = 100; |
32 | 32 | |
33 | - private static final Logger LOGGER = Logger.getAnonymousLogger(); | |
34 | - | |
35 | 33 | |
36 | 34 | private final List<Land> landList = new LinkedList<>(); |
37 | 35 | private final List<Land> unmodList = |
@@ -40,6 +40,13 @@ import jp.sfjp.jindolf.util.Monodizer; | ||
40 | 40 | @SuppressWarnings("serial") |
41 | 41 | public final class LogFrame extends JDialog { |
42 | 42 | |
43 | + private static final int HEIGHT_LIMIT = 5000; | |
44 | + private static final int HEIGHT_NEW = 4000; | |
45 | + | |
46 | + private static final int AROUND_TEXT = 3; | |
47 | + private static final int AROUND_BUTTON = 5; | |
48 | + | |
49 | + | |
43 | 50 | private final MvcFacade facade; |
44 | 51 | |
45 | 52 | private final JScrollPane scrollPane; |
@@ -72,7 +79,7 @@ public final class LogFrame extends JDialog { | ||
72 | 79 | HeightKeeper keeper = this.facade.getHeightKeeper(); |
73 | 80 | |
74 | 81 | tracker.setTrackingMode(true); |
75 | - keeper.setConditions(5000, 4000); | |
82 | + keeper.setConditions(HEIGHT_LIMIT, HEIGHT_NEW); | |
76 | 83 | |
77 | 84 | Handler logHandler = null; |
78 | 85 | if(LogUtils.hasLoggingPermission()){ |
@@ -101,7 +108,8 @@ public final class LogFrame extends JDialog { | ||
101 | 108 | JScrollPane scrollPane = new JScrollPane(); |
102 | 109 | |
103 | 110 | JScrollBar vbar = scrollPane.getVerticalScrollBar(); |
104 | - BoundedRangeModel rangeModel = facadeArg.getVerticalBoundedRangeModel(); | |
111 | + BoundedRangeModel rangeModel = | |
112 | + facadeArg.getVerticalBoundedRangeModel(); | |
105 | 113 | vbar.setModel(rangeModel); |
106 | 114 | |
107 | 115 | JTextArea textArea = buildTextArea(facadeArg); |
@@ -123,7 +131,12 @@ public final class LogFrame extends JDialog { | ||
123 | 131 | textArea.setLineWrap(true); |
124 | 132 | Monodizer.monodize(textArea); |
125 | 133 | |
126 | - Border border = BorderFactory.createEmptyBorder(3, 3, 3, 3); | |
134 | + Border border = BorderFactory.createEmptyBorder( | |
135 | + AROUND_TEXT, | |
136 | + AROUND_TEXT, | |
137 | + AROUND_TEXT, | |
138 | + AROUND_TEXT | |
139 | + ); | |
127 | 140 | textArea.setBorder(border); |
128 | 141 | |
129 | 142 | JPopupMenu popup = new TextPopup(); |
@@ -175,7 +188,12 @@ public final class LogFrame extends JDialog { | ||
175 | 188 | |
176 | 189 | constraints.weighty = 0.0; |
177 | 190 | constraints.fill = GridBagConstraints.HORIZONTAL; |
178 | - constraints.insets = new Insets(5, 5, 5, 5); | |
191 | + constraints.insets = new Insets( | |
192 | + AROUND_BUTTON, | |
193 | + AROUND_BUTTON, | |
194 | + AROUND_BUTTON, | |
195 | + AROUND_BUTTON | |
196 | + ); | |
179 | 197 | |
180 | 198 | content.add(new JSeparator(), constraints); |
181 | 199 |
@@ -24,7 +24,7 @@ public final class LogUtils { | ||
24 | 24 | new LoggingPermission("control", null); |
25 | 25 | |
26 | 26 | private static final PrintStream STDERR = System.err; |
27 | - private static final String ERRMSG_LOGSECURITY = | |
27 | + private static final String ERRMSG_LOGPERM = | |
28 | 28 | "セキュリティ設定により、ログ設定を変更できませんでした"; |
29 | 29 | |
30 | 30 |
@@ -38,6 +38,7 @@ public final class LogUtils { | ||
38 | 38 | |
39 | 39 | /** |
40 | 40 | * ログ操作のアクセス権があるか否か判定する。 |
41 | + * | |
41 | 42 | * @return アクセス権があればtrue |
42 | 43 | */ |
43 | 44 | public static boolean hasLoggingPermission(){ |
@@ -48,6 +49,7 @@ public final class LogUtils { | ||
48 | 49 | |
49 | 50 | /** |
50 | 51 | * ログ操作のアクセス権があるか否か判定する。 |
52 | + * | |
51 | 53 | * @param manager セキュリティマネージャ |
52 | 54 | * @return アクセス権があればtrue |
53 | 55 | */ |
@@ -65,6 +67,7 @@ public final class LogUtils { | ||
65 | 67 | |
66 | 68 | /** |
67 | 69 | * ルートロガーを返す。 |
70 | + * | |
68 | 71 | * @return ルートロガー |
69 | 72 | */ |
70 | 73 | public static Logger getRootLogger(){ |
@@ -74,14 +77,16 @@ public final class LogUtils { | ||
74 | 77 | |
75 | 78 | /** |
76 | 79 | * ルートロガーの初期化を行う。 |
77 | - * ルートロガーの既存ハンドラを全解除し、 | |
80 | + * | |
81 | + * <p>ルートロガーの既存ハンドラを全解除し、 | |
78 | 82 | * {@link MomentaryHandler}ハンドラを登録する。 |
83 | + * | |
79 | 84 | * @param useConsoleLog trueなら |
80 | 85 | * {@link java.util.logging.ConsoleHandler}も追加する。 |
81 | 86 | */ |
82 | 87 | public static void initRootLogger(boolean useConsoleLog){ |
83 | 88 | if( ! hasLoggingPermission() ){ |
84 | - STDERR.println(ERRMSG_LOGSECURITY); | |
89 | + STDERR.println(ERRMSG_LOGPERM); | |
85 | 90 | return; |
86 | 91 | } |
87 | 92 |
@@ -105,10 +110,14 @@ public final class LogUtils { | ||
105 | 110 | |
106 | 111 | /** |
107 | 112 | * ルートロガーに新ハンドラを追加する。 |
108 | - * ルートロガー中の全{@link MomentaryHandler}型ハンドラに | |
113 | + * | |
114 | + * <p>ルートロガー中の全{@link MomentaryHandler}型ハンドラに | |
109 | 115 | * 蓄積されていたログは、新ハンドラに一気に転送される。 |
110 | - * {@link MomentaryHandler}型ハンドラはルートロガーから削除される。 | |
111 | - * ログ操作のパーミッションがない場合、何もしない。 | |
116 | + * | |
117 | + * <p>{@link MomentaryHandler}型ハンドラはルートロガーから削除される。 | |
118 | + * | |
119 | + * <p>ログ操作のパーミッションがない場合、何もしない。 | |
120 | + * | |
112 | 121 | * @param newHandler 新ハンドラ |
113 | 122 | */ |
114 | 123 | public static void switchHandler(Handler newHandler){ |
@@ -122,10 +131,10 @@ public final class LogUtils { | ||
122 | 131 | |
123 | 132 | logger.addHandler(newHandler); |
124 | 133 | |
125 | - for(MomentaryHandler momentaryHandler : momentaryHandlers){ | |
134 | + momentaryHandlers.forEach(momentaryHandler -> { | |
126 | 135 | momentaryHandler.transfer(newHandler); |
127 | 136 | momentaryHandler.close(); |
128 | - } | |
137 | + }); | |
129 | 138 | |
130 | 139 | return; |
131 | 140 | } |
@@ -18,11 +18,11 @@ import java.util.logging.Logger; | ||
18 | 18 | */ |
19 | 19 | public class LoggingDispatcher extends EventQueue{ |
20 | 20 | |
21 | + private static final Logger LOGGER = Logger.getAnonymousLogger(); | |
22 | + | |
21 | 23 | private static final String FATALMSG = |
22 | 24 | "イベントディスパッチ中に異常が起きました。"; |
23 | 25 | |
24 | - private static final Logger LOGGER = Logger.getAnonymousLogger(); | |
25 | - | |
26 | 26 | |
27 | 27 | /** |
28 | 28 | * コンストラクタ。 |
@@ -47,17 +47,20 @@ public class LoggingDispatcher extends EventQueue{ | ||
47 | 47 | |
48 | 48 | /** |
49 | 49 | * 異常系を匿名ロガーに出力する。 |
50 | - * @param e 例外 | |
50 | + * | |
51 | + * @param throwable 例外 | |
51 | 52 | */ |
52 | - private static void logThrowable(Throwable e){ | |
53 | - LOGGER.log(Level.SEVERE, FATALMSG, e); | |
53 | + private static void logThrowable(Throwable throwable){ | |
54 | + LOGGER.log(Level.SEVERE, FATALMSG, throwable); | |
54 | 55 | return; |
55 | 56 | } |
56 | 57 | |
57 | 58 | |
58 | 59 | /** |
59 | 60 | * {@inheritDoc} |
60 | - * イベントディスパッチにより発生した例外を匿名ログ出力する。 | |
61 | + * | |
62 | + * <p>イベントディスパッチにより発生した例外を匿名ログ出力する。 | |
63 | + * | |
61 | 64 | * @param event {@inheritDoc} |
62 | 65 | */ |
63 | 66 | @Override |
@@ -70,11 +73,11 @@ public class LoggingDispatcher extends EventQueue{ | ||
70 | 73 | }catch(Exception e){ |
71 | 74 | logThrowable(e); |
72 | 75 | } |
73 | - // TODO Toolkit#beep()もするべきか | |
74 | - // TODO モーダルダイアログを出すべきか | |
75 | - // TODO 標準エラー出力抑止オプションを用意すべきか | |
76 | - // TODO セキュリティバイパス | |
77 | 76 | return; |
78 | 77 | } |
79 | 78 | |
79 | + // TODO モーダルダイアログを出すべきか | |
80 | + // TODO 標準エラー出力抑止オプションを用意すべきか | |
81 | + // TODO セキュリティバイパス | |
82 | + | |
80 | 83 | } |
@@ -7,24 +7,28 @@ | ||
7 | 7 | |
8 | 8 | package jp.sfjp.jindolf.log; |
9 | 9 | |
10 | +import java.util.Arrays; | |
10 | 11 | import java.util.Collections; |
11 | 12 | import java.util.LinkedList; |
12 | 13 | import java.util.List; |
14 | +import java.util.Objects; | |
13 | 15 | import java.util.logging.Handler; |
14 | 16 | import java.util.logging.Level; |
15 | 17 | import java.util.logging.LogRecord; |
16 | 18 | import java.util.logging.Logger; |
19 | +import java.util.stream.Collectors; | |
17 | 20 | |
18 | 21 | /** |
19 | 22 | * なにもしない一時的なロギングハンドラ。 |
20 | - * なにがロギングされたのかあとから一括して取得することができる。 | |
23 | + * | |
24 | + * <p>なにがロギングされたのかあとから一括して取得することができる。 | |
21 | 25 | * |
22 | 26 | * <p>知らないうちにメモリを圧迫しないよう注意。 |
23 | 27 | */ |
24 | 28 | public class MomentaryHandler extends Handler{ |
25 | 29 | |
26 | 30 | private final List<LogRecord> logList = |
27 | - Collections.synchronizedList(new LinkedList<LogRecord>()); | |
31 | + Collections.synchronizedList(new LinkedList<>()); | |
28 | 32 | private final List<LogRecord> unmodList = |
29 | 33 | Collections.unmodifiableList(this.logList); |
30 | 34 |
@@ -40,36 +44,39 @@ public class MomentaryHandler extends Handler{ | ||
40 | 44 | |
41 | 45 | /** |
42 | 46 | * ロガーに含まれる{@link MomentaryHandler}型ハンドラのリストを返す。 |
47 | + * | |
43 | 48 | * @param logger ロガー |
44 | 49 | * @return {@link MomentaryHandler}型ハンドラのリスト |
45 | 50 | */ |
46 | 51 | public static List<MomentaryHandler> |
47 | 52 | getMomentaryHandlers(Logger logger){ |
48 | - List<MomentaryHandler> result = new LinkedList<>(); | |
53 | + List<MomentaryHandler> result; | |
49 | 54 | |
50 | - for(Handler handler : logger.getHandlers()){ | |
51 | - if( ! (handler instanceof MomentaryHandler) ) continue; | |
52 | - MomentaryHandler momentaryHandler = (MomentaryHandler) handler; | |
53 | - result.add(momentaryHandler); | |
54 | - } | |
55 | + result = Arrays.stream(logger.getHandlers()) | |
56 | + .filter(handler -> handler instanceof MomentaryHandler) | |
57 | + .map(handler -> (MomentaryHandler) handler) | |
58 | + .collect(Collectors.toList()); | |
55 | 59 | |
56 | 60 | return result; |
57 | 61 | } |
58 | 62 | |
59 | 63 | /** |
60 | 64 | * ロガーに含まれる{@link MomentaryHandler}型ハンドラを全て削除する。 |
65 | + * | |
61 | 66 | * @param logger ロガー |
62 | 67 | */ |
63 | 68 | public static void removeMomentaryHandlers(Logger logger){ |
64 | - for(MomentaryHandler handler : getMomentaryHandlers(logger)){ | |
69 | + getMomentaryHandlers(logger).forEach(handler -> { | |
65 | 70 | logger.removeHandler(handler); |
66 | - } | |
71 | + }); | |
67 | 72 | return; |
68 | 73 | } |
69 | 74 | |
70 | 75 | /** |
71 | 76 | * 蓄積されたログレコードのリストを返す。 |
72 | - * 古いログが先頭に来る。 | |
77 | + * | |
78 | + * <p>古いログが先頭に来る。 | |
79 | + * | |
73 | 80 | * @return 刻一刻と成長するログレコードのリスト。変更不可。 |
74 | 81 | */ |
75 | 82 | public List<LogRecord> getRecordList(){ |
@@ -78,7 +85,9 @@ public class MomentaryHandler extends Handler{ | ||
78 | 85 | |
79 | 86 | /** |
80 | 87 | * {@inheritDoc} |
81 | - * ログを内部に溜め込む。 | |
88 | + * | |
89 | + * <p>ログを内部に溜め込む。 | |
90 | + * | |
82 | 91 | * @param record {@inheritDoc} |
83 | 92 | */ |
84 | 93 | @Override |
@@ -89,6 +98,7 @@ public class MomentaryHandler extends Handler{ | ||
89 | 98 | return; |
90 | 99 | } |
91 | 100 | |
101 | + // recording caller method | |
92 | 102 | record.getSourceMethodName(); |
93 | 103 | |
94 | 104 | this.logList.add(record); |
@@ -98,7 +108,8 @@ public class MomentaryHandler extends Handler{ | ||
98 | 108 | |
99 | 109 | /** |
100 | 110 | * {@inheritDoc} |
101 | - * (何もしない)。 | |
111 | + * | |
112 | + * <p>(何もしない)。 | |
102 | 113 | */ |
103 | 114 | @Override |
104 | 115 | public void flush(){ |
@@ -107,7 +118,8 @@ public class MomentaryHandler extends Handler{ | ||
107 | 118 | |
108 | 119 | /** |
109 | 120 | * {@inheritDoc} |
110 | - * 以降のログ出力を無視する。 | |
121 | + * | |
122 | + * <p>以降のログ出力を無視する。 | |
111 | 123 | */ |
112 | 124 | @Override |
113 | 125 | public void close(){ |
@@ -119,19 +131,21 @@ public class MomentaryHandler extends Handler{ | ||
119 | 131 | /** |
120 | 132 | * 自分自身をクローズし、 |
121 | 133 | * 蓄積したログを他のハンドラへまとめて出力する。 |
122 | - * 最後に蓄積されたログを解放する。 | |
134 | + * | |
135 | + * <p>最後に蓄積されたログを解放する。 | |
136 | + * | |
123 | 137 | * @param handler 他のハンドラ |
124 | 138 | * @throws NullPointerException 引数がnull |
125 | 139 | */ |
126 | 140 | public void transfer(Handler handler) throws NullPointerException { |
127 | - if(handler == null) throw new NullPointerException(); | |
141 | + Objects.nonNull(handler); | |
128 | 142 | if(handler == this) return; |
129 | 143 | |
130 | 144 | close(); |
131 | 145 | |
132 | - for(LogRecord record : this.logList){ | |
146 | + this.logList.forEach(record -> { | |
133 | 147 | handler.publish(record); |
134 | - } | |
148 | + }); | |
135 | 149 | |
136 | 150 | handler.flush(); |
137 | 151 | this.logList.clear(); |