FreeBSD - メンテナンス・トラブルシュート - PHP - ログ - 書式

クラウディア 
1. タイムスタンプ
2. 書式は変えられないのか?
3. アプリケーションログを変更

1. タイムスタンプ

 ログの書式ですが、わたしが一番気になるのが、タイムスタンプなのです。

[10-Jul-2018 17:20:34 Asia/Tokyo] PHP Deprecated:  ...
 てな感じで出力されます・・・。  いわゆる欧米式ですな。  何が嫌いって、ばらした後、ソートできないじゃん。  「Asia/Tokyo」ってのも気になります。「JST」でいいじゃんって思うんですけどね。

2. 書式は変えられないのか?

 「php.ini」をいじって書式が変えられないかと調べてみましたが、方法はなさそうです。  ソースをハックして、書き換えるって手もあるのでしょうが。  さすがにその時間と元気はありません。

3. アプリケーションログを変更

 仕方ないので、アプリケーションログを変更することにしました。  もとはこういう風に書いていたのですが。
<?php
/**
 * エラーログ
 * @param string $message
 */
function errorlog($file, $function, $line, $message)
{
	$messageEx  = sprintf("%s ", date("Y-m-d H:i:s"));
	$messageEx .= sprintf("%-24s ", $file);
	$messageEx .= sprintf("%-8s ", $function);
	$messageEx .= sprintf("%5d ", $line);
	$messageEx .= $message;
	$messageEx .= "\n";

	error_log($messageEx, 3, '/パス/ファイル名.log');
}
?>

 このままだとタイムスタンプが。

2018-07-10 17:31:02
 てな感じで出力されるので、php のログに合わせて。
<?php
/**
 * エラーログ
 * @param string $message
 */
function errorlog($file, $function, $line, $message)
{
	$messageEx  = sprintf("%s ", '['.date("d-M-Y H:i:s").' '.date_default_timezone_get().'] ');
	$messageEx .= sprintf("%-24s ", $file);
	$messageEx .= sprintf("%-8s ", $function);
	$messageEx .= sprintf("%5d ", $line);
	$messageEx .= $message;
	$messageEx .= "\n";

	error_log($messageEx, 3, '/パス/ファイル名.log');
}
?>

 という書き方にしました。
ハイスピードプラン