忍者ブログ
Admin / Write / Res
ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
カウンター
アクセスカウンター
最新コメント
[02/13 LarrylyclE]
[02/07 Cazraso]
[01/31 JamesLor]
[01/30 JamesLor]
[01/30 JamesLor]
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
[665]  [664]  [663]  [662]  [661]  [660]  [659]  [658]  [657]  [656]  [655
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

perlのメンテナンスで最も苦しめられるのがCPANモジュールのバージョンです。
私の知識不足もあると思いますが、CPANモジュールはバージョンを指定してのインストールができません。
そのため、元から開発環境/本番環境と用意されていれば何ら苦労はしませんが、本番稼動しているものの開発環境がない場合。
開発環境を作成する必要が出てくるかもしれません。
 
その場合ネックなのが、本番環境と開発環境の差分です。
埋められるものは極力埋めるにしてもCPANがネックになることが多いのです。
今回はその中でもかなり苦しめられたLogHandlerについて対処方法を記述します。
 
LogHandlerは少なくとも0.68と0.72で書式が変更されています。
ドキュメントも残されていないため、どのバージョンでどのように変わったのか、正確に出すことができません。
ですので今回はバージョンが0.71以下の場合は0.68の書式で。
0.72以上であれば新書式でオブジェクトを生成するように、プログラム修正します。
 
--------------------
オブジェクト生成例
--------------------
# ログ出力の際の接頭詞情報の取得
my $hostname    = hostname;
my $pid         = $$;
my $progname    = $0;
 
# LogHandlerの基本プロパティ
my %logopts =(
    filename => "/path/to/logfile",
    #filename => \*STDOUT,  # 標準出力
    mode => 'append',
    newline => '1',
    maxlevel => '7',
    minlevel => '0',
    prefix => "$hostname $pid [<--LEVEL-->] $progname: "
);
 
# オブジェクトの作成
my $log;
if( $Log::Handler::VERSION >= 0.71 )  {
    delete $logopts{prefix};
    $log = Log::Handler->new();
    $log->add( file => \%logopts );
}
else {
    $log = Log::Handler->new(%logopts);
}
--------------------
 
もちろん0.71が新書式だというのであれば、適宜変更すれば良いと思います。
指定できるオプションももっとありますのでドキュメントを参照してください。
今回は接頭詞(prefix)の書式が新旧で異なるため、対応を施しています。
 

拍手

PR
この記事にコメントする
Name
Title
Color
Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (管理人にのみ表示)
この記事へのトラックバック
この記事にトラックバックする:
Copyright ©  アナログを愛するデジタル生活館 All Rights Reserved.
* material by Pearl Box   * Template by tsukika

忍者ブログ [PR]