• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作業部屋の使い方を試しています。


Commit MetaInfo

Revision80 (tree)
Time2014-09-19 18:34:53
Authortuna_p

Log Message

(empty log message)

Change Summary

Incremental Difference

--- trunk/HtmlTest2/src/WebScraping/HtmlParserCallback.java (revision 79)
+++ trunk/HtmlTest2/src/WebScraping/HtmlParserCallback.java (revision 80)
@@ -32,12 +32,8 @@
3232 * HTMLパーサ部品.
3333 * @author kgto
3434 */
35-public class HtmlParserCallback extends HTMLEditorKit.ParserCallback {
35+class HtmlParserCallback extends HTMLEditorKit.ParserCallback {
3636
37- // デバック情報表示フラグ
38- final boolean DEBUG = false;
39- //final boolean DEBUG = true;
40-
4137 // Tag毎の階層
4238 HashMap<HTML.Tag,Integer> tagMap = new HashMap<>();
4339
@@ -58,7 +54,7 @@
5854 // 属性データ
5955 AttributeData attrdata;
6056
61- public HtmlParserCallback(SearchData skey) {
57+ protected HtmlParserCallback(SearchData skey) {
6258
6359 // キー情報展開
6460 keytag = skey.getHtmltag();
@@ -68,7 +64,7 @@
6864 sData = new ArrayList();
6965 }
7066
71- public ArrayList getrtnData() {
67+ ArrayList getrtnData() {
7268 return this.sData;
7369 }
7470
@@ -86,9 +82,7 @@
8682 AttributeData handleStartattrdata = new AttributeData();
8783 handleStartattrdata.add(tag, attr);
8884
89- //--- DEBUG OUT ---- start ---
9085 DebugProcess.htmlinfo(tag, attr, "handleStartTag", count);
91- //--- DEBUG OUT ---- end ---
9286
9387 if(bufCount == 0) {
9488 if(tag.toString().equals(keytag)) {
@@ -114,9 +108,7 @@
114108 count = tagMap.get(tag);
115109 }
116110
117- //--- DEBUG OUT ---- start ---
118111 DebugProcess.htmlinfo(tag, null, "handleEndTag", count);
119- //--- DEBUG OUT ---- end ---
120112
121113 if(tag.equals(bufTag) && count <= bufCount) {
122114
@@ -135,11 +127,10 @@
135127
136128 @Override
137129 public void handleText(char[] data, int pos){
138- //--- DEBUG OUT ---- start ---
130+
139131 DebugProcess.htmlinfo(data, "handleText");
140- //--- DEBUG OUT ---- end ---
132+
141133 String splitchar = "\t";
142-
143134 //制御文字の削除
144135 // &nbsp; 0xa0
145136 StringBuilder buf = new StringBuilder();
@@ -148,7 +139,6 @@
148139 buf.append(data[i]);
149140 }
150141 }
151-
152142 if(bufCount > 0) {
153143 if(bufText.length() > 0) {
154144 bufText.append(splitchar);
@@ -155,19 +145,14 @@
155145 }
156146 bufText.append(buf.toString());
157147 }
158-
159148 }
160149
161150 @Override
162151 public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attr, int pos){
163-
164152 if(bufCount > 0) {
165153 attrdata.add(tag, attr);
166154 }
167-
168- //--- DEBUG OUT ---- start ---
169155 DebugProcess.htmlinfo(tag, attr, "handleSimpleTag", 0);
170- //--- DEBUG OUT ---- end ---
171156 }
172157
173158 /**
@@ -175,7 +160,7 @@
175160 * @param attr ページのMutableAttributeSet
176161 * @return boolean 検索キーと一致の時、true
177162 */
178- public boolean serachAttribute(MutableAttributeSet attr) {
163+ boolean serachAttribute(MutableAttributeSet attr) {
179164 String currentID = (String)attr.getAttribute(HTML.Attribute.ID);
180165 String currentClass = (String)attr.getAttribute(HTML.Attribute.CLASS);
181166
@@ -206,7 +191,7 @@
206191 * @param attrdata
207192 * @return boolean 検索キーと一致の時、true
208193 */
209- public boolean serachAttribute(HTML.Tag tag, AttributeData attrdata) {
194+ boolean serachAttribute(HTML.Tag tag, AttributeData attrdata) {
210195 // ID と CLASS の両方にキー入力有りの場合
211196 if(keyid.isEmpty() == false && keyclass.isEmpty() == false) {
212197 if(attrdata.searchId(tag, keyid) && attrdata.searchClass(tag, keyclass)) {
--- trunk/HtmlTest2/src/WebScraping/DebugProcess.java (revision 79)
+++ trunk/HtmlTest2/src/WebScraping/DebugProcess.java (revision 80)
@@ -34,46 +34,68 @@
3434 import javax.swing.text.html.HTML;
3535
3636 /**
37- *
37+ * デバック情報.
38+ * カレントディレクトリに設定ファイル(Debug.prop)を置くことで、デバックログの出力を制御する。
3839 * @author kgto
3940 */
4041 public class DebugProcess {
41-
42+ // 設定ファイル名
4243 protected static final String configurationFilename = "Debug.prop";
44+ // ロガー名
4345 protected static final Logger logger = Logger.getLogger("WebScraping");
46+ // ログ出力デフォルトレベル
47+ protected static final Level loggerlevel = Level.FINEST;
4448
4549
50+ /**
51+ * ログ出力設定.
52+ * ログ設定ファイルの存在をチェック、(最終的な)ログレベルにより、
53+ * ファイルハンドラの設定と出力書式の設定を行う。
54+ */
4655 public static void debuglog_set() {
4756 try {
4857 initLogConfiguration();
4958
5059 if(Level.ALL.equals(logger.getLevel())) {
51- logger.addHandler(new FileHandler("WebScraping%g.log", 100000, 2));
60+ //logger.addHandler(new FileHandler("WebScraping%g.log", 100000, 2));
61+ logger.addHandler(new FileHandler("WebScraping%g.log"));
5262 }
5363 setFomatter();
5464
55- } catch (IOException ex) {
65+ } catch (IOException | SecurityException ex) {
5666 Logger.getLogger(DebugProcess.class.getName()).log(Level.SEVERE, null, ex);
57- } catch (SecurityException ex) {
58- Logger.getLogger(DebugProcess.class.getName()).log(Level.SEVERE, null, ex);
5967 }
60-
6168 }
6269
70+ /**
71+ * ログ出力設定解除.
72+ */
6373 public static void debuglog_unset() {
64-
6574 }
6675
6776
68-
77+ /**
78+ * デバック出力(HTML解析-タグ&属性).
79+ * HTMLのタグと属性の解析状態を出力する。
80+ * 書式: 9 : x : タグ名 [属性名]属性数 = 属性値<br>
81+ * 凡例: 9 = 階層レベル(count値), x = F(tagの開始)/E(tagの終了)/S(単独tag)の何れか1文字<br>
82+ * @param tag タグ
83+ * @param attr 属性
84+ * @param methodname このメソッドを呼び出した親メソッド名
85+ * @param count HTMLタグの階層レベル
86+ */
6987 public static void htmlinfo(HTML.Tag tag, MutableAttributeSet attr,
7088 String methodname, int count) {
7189
72- if(!Level.ALL.equals(logger.getLevel())) {
90+ // ログ出力レベルチェック
91+ if(logger.getLevel() == null) {
7392 return;
7493 }
94+ if(logger.getLevel().intValue() > loggerlevel.intValue()) {
95+ return;
96+ }
7597
76-
98+ // 編集処理
7799 char kbn = ' ';
78100 if("handleStartTag".equals(methodname)) {
79101 kbn = 'F';
@@ -105,27 +127,43 @@
105127 }
106128 }
107129
108- logger.finest(strBuf.toString());
130+ logger.log(loggerlevel, strBuf.toString());
109131 }
110132
133+ /**
134+ * デバック出力(メッセージ).
135+ * 引数に渡された任意のメッセージを出力する。
136+ * @param str メッセージ
137+ * @param methodname このメソッドを呼び出した親メソッド名
138+ */
111139 public static void htmlinfo(String str, String methodname) {
112- logger.finest(str);
140+ logger.log(loggerlevel, str);
113141 }
114142
115143 public static void htmlinfo(String str) {
116- logger.finest(str);
144+ logger.log(loggerlevel, str);
117145 }
118146
147+ /**
148+ * デバック出力(HTML解析-本文).
149+ * 本文の内容を出力する。
150+ * @param data 本文(HTML内の文字列)
151+ * @param methodname このメソッドを呼び出した親メソッド名
152+ */
119153 public static void htmlinfo(char[] data, String methodname) {
120154 String dat = new String(data);
121- logger.finest(dat);
155+ logger.log(loggerlevel, dat);
122156 }
123157
124158 public static void htmlinfo(char[] data) {
125159 String dat = new String(data);
126- logger.finest(dat);
160+ logger.log(loggerlevel, dat);
127161 }
128162
163+ /**
164+ * ログ出力設定ファイルチェック.
165+ * 設定ファイルの存在をチェックし存在する場合、設定ファイルの内容を設定する。
166+ */
129167 private static void initLogConfiguration() {
130168
131169 File file = new File(configurationFilename);
@@ -143,6 +181,10 @@
143181 }
144182 }
145183
184+ /**
185+ * ログ出力フォーマッター設定.
186+ * ファイルへログ出力時の書式を設定する。
187+ */
146188 private static void setFomatter() {
147189 Handler[] handlers = logger.getHandlers();
148190 for(int i = 0 ; i < handlers.length ; i++) {
@@ -154,12 +196,20 @@
154196
155197 }
156198
199+/**
200+ * ログ出力フォーマッター.
201+ * @author kgto
202+ */
157203 class HtmlFormatter extends Formatter {
158-
204+ /**
205+ * Logの出力文字列を生成する。
206+ * 出力書式:<br>
207+ * YYYY-MM-DD HH:SS:MM ログレベル<メソッド名>メッセージ
208+ */
159209 @Override
160210 public synchronized String format(final LogRecord aRecord) {
161211
162- final StringBuffer message = new StringBuffer(131);
212+ final StringBuffer message = new StringBuffer(100);
163213
164214 long millis = aRecord.getMillis();
165215 String time = String.format("%tF %<tT", millis);
@@ -176,6 +226,7 @@
176226 message.append(formatMessage(aRecord));
177227 message.append('\n');
178228
229+ // 例外エラーの場合、エラー内容とスタックトレース出力
179230 Throwable throwable = aRecord.getThrown();
180231 if (throwable != null) {
181232 message.append(throwable.toString());
@@ -187,7 +238,5 @@
187238 }
188239 }
189240 return message.toString();
190-
191241 }
192-
193242 }
--- trunk/HtmlTest2/test/WebScraping/DebugProcessT01.java (revision 79)
+++ trunk/HtmlTest2/test/WebScraping/DebugProcessT01.java (revision 80)
@@ -21,6 +21,7 @@
2121
2222 System.out.println("LoggerName : " + logger.getName());
2323 System.out.println("LoggerLevel : " + logger.getLevel());
24+ System.out.println("Parent : " + logger.getParent().getName());
2425
2526 Handler[] handlers = logger.getHandlers();
2627 for(int i = 0 ; i < handlers.length ; i++) {