PHPで簡単なログを出力するときに、毎回日時をセットするのがめんどくさいので、日時を出力するログと出力する値をprintfのようにフォーマットしたいときに便利なincludeファイルを残しておきます。
使い方:
<?
require_once( "logwrite.inc");
loginit( "/var/log/test.log", "dateformat=datetime" );
$a = 99;
logwrite( "aのデータ = %05.5d", $a );
?>
出力結果
2008-11-11 02:22:11 :aのデータ = 00099
となります。
ファイル: logwrite.inc
使い方:
<?
require_once( "logwrite.inc");
loginit( "/var/log/test.log", "dateformat=datetime" );
$a = 99;
logwrite( "aのデータ = %05.5d", $a );
?>
出力結果
2008-11-11 02:22:11 :aのデータ = 00099
となります。
ファイル: logwrite.inc
<?
define( "LOG_NOOUT", "" );
define( "LOG_STDOUT", "stdout" );
$log_fname = "";
$log_option = "";
/**************************************************************
option
dateformat datetime, date, time
**************************************************************/
function loginit( $fname, $option ){
global $log_fname;
global $log_option;
$log_fname = $fname;
if( $option != "" ){
$opta = explode( ",", $option );
for( $i=0;$i<count( $opta );$i++ ){
$optd = trim( $opta[$i] );
if( eregi( "^([^=]+)=(.*)$", $optd, $optr ) ){
$log_option[$optr[1]] = $optr[2];
}
}
}
}
function logwrite(){
global $log_fname;
global $log_option;
$num = func_num_args();
$arg = func_get_args();
if( $num == 0 ) return 0;
if( $log_fname != "" ){
$fmt = $arg[0];
$vap = array();
if( $num > 1 ){
for( $i=1;$i<$num;$i++ ){
array_push( $vap, $arg[$i] );
}
$logstr = vsprintf( $fmt, $vap );
}else{
$logstr = $fmt;
}
if( $log_option["dateformat"] == "datetime" ){
$dt = Date( "Y-m-d H:i:s" )." :";
}else if( $log_option["dateformat"] == "date" ){
$dt = Date( "Y-m-d" )." :";
}else if( $log_option["dateformat"] == "time" ){
$dt = Date( "H:i:s" )." :";
}else{
$dt = "";
}
if( $log_fname == LOG_STDOUT ){
printf( "%s%s\n", $dt, $logstr );
}else{
$fp = fopen( $log_fname, "a" );
fprintf( $fp, "%s%s\n", $dt, $logstr );
fclose( $fp );
}
}
}
?>
define( "LOG_NOOUT", "" );
define( "LOG_STDOUT", "stdout" );
$log_fname = "";
$log_option = "";
/**************************************************************
option
dateformat datetime, date, time
**************************************************************/
function loginit( $fname, $option ){
global $log_fname;
global $log_option;
$log_fname = $fname;
if( $option != "" ){
$opta = explode( ",", $option );
for( $i=0;$i<count( $opta );$i++ ){
$optd = trim( $opta[$i] );
if( eregi( "^([^=]+)=(.*)$", $optd, $optr ) ){
$log_option[$optr[1]] = $optr[2];
}
}
}
}
function logwrite(){
global $log_fname;
global $log_option;
$num = func_num_args();
$arg = func_get_args();
if( $num == 0 ) return 0;
if( $log_fname != "" ){
$fmt = $arg[0];
$vap = array();
if( $num > 1 ){
for( $i=1;$i<$num;$i++ ){
array_push( $vap, $arg[$i] );
}
$logstr = vsprintf( $fmt, $vap );
}else{
$logstr = $fmt;
}
if( $log_option["dateformat"] == "datetime" ){
$dt = Date( "Y-m-d H:i:s" )." :";
}else if( $log_option["dateformat"] == "date" ){
$dt = Date( "Y-m-d" )." :";
}else if( $log_option["dateformat"] == "time" ){
$dt = Date( "H:i:s" )." :";
}else{
$dt = "";
}
if( $log_fname == LOG_STDOUT ){
printf( "%s%s\n", $dt, $logstr );
}else{
$fp = fopen( $log_fname, "a" );
fprintf( $fp, "%s%s\n", $dt, $logstr );
fclose( $fp );
}
}
}
?>