2014年12月12日金曜日

シェルスクリプトでlog4jみたいにロギングできるスクリプトがあったので試した

概要

これを試してみました

環境

  • CentOS 6.3 64bit
  • bash 4.1.2

使い方

  • 適当な場所に配置
cd /var/tmp
wget http://www.mitchy-world.jp/itmemo/shell/download/06.zip
unzip 06.zip
cd 06
  • ログの出力先を変更
    emacs common1.sh
    以下を好きなフルパスに変更してください
LOG_DIR=`pwd`"/"
  • サンプルを試す
cd /var/tmp/06
sh log4jtest1.sh
cat SHELL-001.log

SHELL-001.logというファイルができているので中身を確認するとログがでています

  • ログレベルを変更する
    emacs common1.sh
SYSTEM_LOG_LEVEL=DEBUG

で再度log4jtest1.sh実行するとDEBUGレベルのログも出力されるようになります

  • 独自のスクリプトから使ってみる
    emacs test.sh
#!/bin/bash                                     

. ./common1.sh

logDebug "app" "this is a debug log"

test.shを実行するとapp.logというファイルができていると思います
LogLevelはDEBUGに変更してから実施してください、LogLevelがINFOだとファイルが出力されません
ポイントは. ./common1.shでこれが書いていないとそもそもダメです

以上、簡単でした
common2.shというファイルもありますが結果は同じになります
関数の戻りがechoorreturnの違いでした

0 件のコメント:

コメントを投稿