Setting

awk4j (AWK for Java Platform)

高度な設定

awk4j の動作環境の設定について

awk4j は、 各種動作条件の設定にプロパティファイルを使用しており 'awk4j.jar' 内に格納している。 (雛形は resources ディレクトリを参照)
これらの設定を変更する場合は、 変更したファイルの存在するディレクトリへのクラスパスを 'awk4j.jar' より先に通せばよい。 (ex. -cp resources;../lib/awk4j.jar)

  1. awk4j 実行環境の設定
  2. エラーおよび例外のロギング設定
  3. ロギングフレ-ムワークの設定
  4. コマンドエリアスの設定
  5. スクリプティング環境の設定

awk4j 実行環境の設定 - awk4j.properties

awk4j の動作環境を設定するプロパティで、 参照する順序は下記のとおり。

  1. 環境変数への設定  (export name=value)
  2. Java system property への設定  (java -Dname=value)
  3. クラスパスパスで指定した awk4j.propertys への設定
  4. awk4j.jar 中の awk4j.propertys への設定
# printf で表示する指数部の最小表示桁数  [-]d.dddde±[d]dd
 org.awk4j.io.TextFormat.ExponentLength = 2   # 省略値はLinux環境 2桁 (ex. 3.4e+12)

Note: Win環境は 3、Linux環境は 2 桁を指定する。

# inet ソケット通信時のコード変換の省略値
 org.awk4j.inet.InputCharSet=JISAutoDetect  # 入力は JIS自動検知
 org.awk4j.inet.OutputCharSet=UTF-8  # 出力は UTF-8

# jdbc データベース URL (jdbc:subprotocol:path) の subprotocol 省略値
 org.awk4j.io.JdbcSocket.subprotocol=hsqldb  # jdbc:?:path

エラーおよび例外のロギング設定 - awk4j-exception.properties

エラーと例外 (java.lang.Throwableのサブ クラス) を指定して、 メッセージログおよびスタックトレースの取得の有無を個別に指定する。
実際のログ動作は、ログレベル (DEBUG, TRACE, INFO, WARN, ERROR, FATAL) を指定して、 次項のロギングフレ-ムワーク を使用しておこなわれる。

Note: awk4j の内部動作にかかわる部分であり、 特に変更する必要はないが、 デバッグ時など詳細エラーを出力する場合には有効。

## 全体に対する暗黙のデフォルト値を指定する
org.awk4j.exception.ExceptionLogger=true                 # ログを取得する
org.awk4j.exception.ExceptionLogger.StackTrace=false     # スタックトレースはログしない

## awk4j ランタイムのログの有無を指定する
org.awk4j.exception.InfoAwk4jLogger=true   # awk4j情報ログを取得する
org.awk4j.exception.TraceAwk4jLogger=true  # awk4jトレ-スログを取得する
org.awk4j.exception.DebugException=true                  # DEBUG:デバッグ
org.awk4j.exception.DebugException.StackTrace=false
org.awk4j.exception.IllegalArgumentError=true            # ERROR:アプリエラー
org.awk4j.exception.IllegalArgumentError.StackTrace=false
org.awk4j.exception.IllegalIOError=true                  # ERROR:I/Oエラー
org.awk4j.exception.IllegalIOError.StackTrace=false
org.awk4j.exception.InformationLogger=true               # INFO:情報
org.awk4j.exception.InformationLogger.StackTrace=false
org.awk4j.exception.TraceLogger=true                     # TRACE:トレ-ス
org.awk4j.exception.TraceLogger.StackTrace=false
org.awk4j.exception.WarningLogger=true                   # WARN:警告
org.awk4j.exception.WarningLogger.StackTrace=false

## 個別のエラーについてログの有無を指定する (必要な定義を追加削除する)
java.util.regex.PatternSyntaxException=false   # 正規表現のコンパイルエラーはログしない
java.io.FileNotFoundException=true   # ファイルが見つからない場合はログする

Note: 利用する機能の先頭の "#"(コメント) を外し利用しないものはコメントアウトする。

ロギングフレ-ムワークの設定 - awk4j-logging.properties

ロギングフレ-ムワークとして log4j を 利用している。 他のフレ-ムワークを利用する場合は、以下の中から選択可能。

  1. log4j - The Jakarta Project ロギングフレ-ムワークを利用 (デフォルト)
  2. Commons Logging - The Jakarta Project ロギングフレ-ムワークを利用 (別途ダウンロードが必要)
  3. コンソール出力のみの簡易ログ
  4. Null (ロギングしない)

Note: 標準では log4j を実装している。 組込み用途などで他のフレームワークを利用する場合には Commons Logging での抽象化を推奨する。

# org.awk4j.exception.ExceptionLogger.logger=org.awk4j.logging.LogAdapter4Log4j   # logg4j
# org.awk4j.exception.ExceptionLogger.logger=org.awk4j.logging.LogAdapter4Commons # commons-logging
# org.awk4j.exception.ExceptionLogger.logger=org.awk4j.logging.LogAdapter4Java    # コンソール出力
org.awk4j.exception.ExceptionLogger.logger=org.awk4j.logging.LogAdapter4Null      # ログなし(デ フォルト)

log4j.properties の内容 (詳細は log4j のドキュメントを参照; 既に log4j を利用している場合は、既存の定義ファイルにクラスパスを通せばよい)

log4j.rootLogger=TRACE, A1
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}: %p: %m%n
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.MaxBackupIndex=2   # ログが 300kbを超えた場合はバックアップを作成して 2世代保存する
log4j.appender.A1.MaxFileSize=300KB
log4j.appender.A1.threshold=TRACE
log4j.appender.A1.File=../tmp/awk4j.log   # ログの出力先ファイル名 (実行時カレントの一つ上の tmp ディレクトリ)

commons-logging.properties のサンプル (詳細は commons のドキュメントを参照)

# org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger # log4j を使用
# org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog   # コンソール出力
# org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog     # ログしない
# org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger # JDK ログを使用

コマンドエリアスの設定 - awk4j-command.properties

システムコマンド (system) 実行時に読み替えるコマンド文字列を指定する。 この設定は、 利用可能なシステムコマンドに (セキュリティ上の観点から) 制限を加えることを想定している。

## command = alias (必 要な定義を追加する)
# awk  = /bin/gawk --lint
# sort = /bin/sort

Note: コマンドにパスが通っていない場合または、 コマンドパスを強制的に置き換える場合に使用する。 (上記の例では、Win の sort でなく /bin/sort を起動する)

スクリプティング環境の設定 - awk4j-script.properties

スクリプティングの動作環境を設定する。

translator.include = lib/include   # include ライブラリの相対位置を指定する
translator.scriptpath = lib/script # トランスレータを GNU AWK で実行する場合のライブラリパス指定 (標準では使用しない)

Setting
  1. awk4j 実行環境の設定
  2. エラーおよび例外のロギング設定
  3. ロギングフレ-ムワークの設定
  4. コマンドエリアスの設定
  5. スクリプティング環境の設定