ログが出力出来ない(全言語共通のログの基本とPerlでのログの実装)


ログの基本

Unixにおいて基本的にすべてのログは

/dev/stderr
/dev/stdout

に出力される。
ここに各言語やbashで書き出す場合が以下
https://hydrocul.github.io/wiki/programming_languages_diff/io/puts.html

apacheやnginxなどではdefaultだとデーモンが起動中のstderrやaccessをlogに出してくれる。
そのため
ruby
STDERR.print "xxx\n"

rubyではirbやdefaultのログで事足りることが多いうえ標準ライブラリのloggerが充実しているのでこのようなことはやらないが、、、

print STDERR "xxx\n"; 

などでもログを出せる。が、自分の用意したログ・ファイルに出力する場合には以下に注意する

躓くポイント

ログのプラグインやライブラリのモジュールやクラスの設定が正しくない

実行者とログファイルの権限

ログファイルのパス

Perl(Amon2)でのログの実装

<Location / > 
    SetHandler perl-script
    PerlHandler Plack::Handler::Apache2
    PerlSetVar psgi_app /var/www/html/bbs/script/bbs-server
</Location>