テキスト処理

  • ログファイルや設定ファイルの処理に最高の手段は何か。
Feb 21, 2005 6:57:39 PM java.util.logging.LogManager$RootLogger log
SEVERE: A very very bad thing has happened!
java.lang.Exception
	at logtest.main(logtest.java:24)
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
  <date>2005-02-21T18:57:39</date>
  <millis>1109041059800</millis>
  <sequence>1</sequence>
  <logger></logger>
  <level>SEVERE</level>
  <class>java.util.logging.LogManager$RootLogger</class>
  <method>log</method>
  <thread>10</thread>
  <message>A very very bad thing has happened!</message>
  <exception>
    <message>java.lang.Exception</message>
    <frame>
      <class>logtest</class>
      <method>main</method>
      <line>30</line>
    </frame>
  </exception>
</record>
</log>
  • 正規表現は、要素が多かったりするときや、こみいったことをするときには向かない。
  • 大は小をかねるでXMLでFA?
  • ちょっと待ったぁ
(log
'(record
  (date "2005-02-21T18:57:39")
  (millis 1109041059800)
  (sequence 1)
  (logger nil)
  (level 'SEVERE)
  (class "java.util.logging.LogManager$RootLogger")
  (method 'log)
  (thread 10)
  (message "A very very bad thing has happened!")
  (exception
    (message "java.lang.Exception")
    (frame
      (class "logtest")
      (method 'main)
      (line 30)))))
  • S式 最強。読みやすい。データ構造=プログラムなのでXML+XSLTなんぞよりずっと簡単。
  • XMLは言語にとってオプションだろう。しかし、LispはS式で、それ自体が言語、それがすごい。

と、ここまでの議論はさておき。