SeasLog学習ノート
10001 ワード
logログは、通常、システムまたはソフトウェア、アプリケーションの実行記録です.logの分析を通じて、ユーザーがシステムやソフトウェア、応用の運行状況を理解するのに便利である.もしあなたの応用logが十分に豊富であれば、従来のユーザーの操作行為、タイプの好み、地域分布、その他の情報を分析することもできます.1つのアプリケーションのlogが同時に複数のレベルに分かれている場合、そのアプリケーションの健康状況を簡単に分析し、問題をタイムリーに発見し、迅速に位置決めし、問題を解決し、損失を救済することができる.
php内蔵error_log、syslog関数は機能が強く、性能が優れているが、様々な欠陥(error_logはエラーレベルがなく、固定フォーマットがなく、syslogはモジュールを問わず、システムログと混合する)のため、柔軟性が大幅に低下し、応用ニーズを満たすことができない.
幸いなことに、log 4 php、plog、Analylogなどの第三者のlogクラスライブラリが上記の欠陥を補っていることが多い(もちろん、プロジェクトで自分で開発したlogクラスにも多くの応用がある).その中でlog 4 phpが最も有名で、設計が精良で、フォーマットが完璧で、ドキュメントが完備して、機能が強い.おすすめです.(log 4 phpの性能はテストする必要があります)
では、以下のニーズを満たすlogクラスライブラリはありますか.モジュール、レベル 構成が簡単(構成不要が望ましい) ログ形式明瞭で読みやすい 応用が簡単で、性能が素晴らしい SeasLogはまさにこの需要に応じて生まれた.
現在提供されているもの PHPプロジェクトにおいて便利かつ規範的にlog を記録する構成可能なデフォルトlogディレクトリとモジュール logディレクトリの指定と現在の構成の取得 初歩的な分析アラートフレームワーク 効率的なログバッファ、便利なバッファdebug PSR-3ログインタフェース仕様 に従う
目標は何ですか便利で規範的なlog記録 高効率の大量log分析 構成可能、マルチパスのlogアラート インストール
コンパイルインストールseaslog
seaslog.iniの構成
php内蔵error_log、syslog関数は機能が強く、性能が優れているが、様々な欠陥(error_logはエラーレベルがなく、固定フォーマットがなく、syslogはモジュールを問わず、システムログと混合する)のため、柔軟性が大幅に低下し、応用ニーズを満たすことができない.
幸いなことに、log 4 php、plog、Analylogなどの第三者のlogクラスライブラリが上記の欠陥を補っていることが多い(もちろん、プロジェクトで自分で開発したlogクラスにも多くの応用がある).その中でlog 4 phpが最も有名で、設計が精良で、フォーマットが完璧で、ドキュメントが完備して、機能が強い.おすすめです.(log 4 phpの性能はテストする必要があります)
では、以下のニーズを満たすlogクラスライブラリはありますか.
現在提供されているもの
目標は何ですか
コンパイルインストールseaslog
$
/path/to/phpize
$ .
/configure
--with-php-config=
/path/to/php-config
$
make
&&
make
install
seaslog.iniの構成
; configuration
for
php SeasLog module
extension = seaslog.so
seaslog.default_basepath = /log/seaslog-test ; log
seaslog.default_logger =
default
; logger
seaslog.disting_type = 1 ; type 1 0 ( )
seaslog.disting_by_hour = 1 ; 1 0 ( )
seaslog.use_buffer = 1 ; buffer 1 0 ( )
seaslog.disting_type = 1 type , log info\warn\erro
seaslog.disting_by_hour = 1
seaslog.use_buffer = 1 buffer。 。 , , ( ) 。
* SEASLOG_DEBUG "debug"
* SEASLOG_INFO "info"
* SEASLOG_NOTICE "notice"
* SEASLOG_WARNING "warning"
* SEASLOG_ERROR "error"
* SEASLOG_CRITICAL "critical"
* SEASLOG_ALERT "alert"
* SEASLOG_EMERGENCY "emergency"
var_dump(SEASLOG_DEBUG,SEASLOG_INFO,SEASLOG_NOTICE);
/*
string('debug') debug
string('info') info
string('notice') notice
*/
SeasLog , 、 、 log。 , , :
<?php
/**
* @author [email protected]
* Date: 14-1-27 4:47
*/
class SeasLog
{
public function __construct()
{
#SeasLog init
}
public function __destruct()
{
#SeasLog distroy
}
/**
* basePath
* @param $basePath
* @return bool
*/
static public function setBasePath($basePath)
{
return TRUE;
}
/**
* basePath
* @return string
*/
static public function getBasePath()
{
return 'the base_path';
}
/**
*
* @param $module
* @return bool
*/
static public function setLogger($module)
{
return TRUE;
}
/**
*
* @return string
*/
static public function getLastLogger()
{
return 'the lastLogger';
}
/**
* ( )
* @param $level
* @param string $log_path
* @return array | long
*/
static public function analyzerCount($level = 'all',$log_path = '*')
{
return array();
}
/**
* , log
* @param $level
* @param string $log_path
* @return array
*/
static public function analyzerDetail($level = SEASLOG_INFO,$log_path = '*')
{
return array();
}
/**
* buffer
* @return array
*/
static public function getBuffer()
{
return array();
}
/**
* debug
* @param $message
* @param array $content
* @param string $module
*/
static public function debug($message,array $content = array(),$module = '')
{
#$level = SEASLOG_DEBUG
}
/**
* info
* @param $message
* @param array $content
* @param string $module
*/
static public function info($message,array $content = array(),$module = '')
{
#$level = SEASLOG_INFO
}
/**
* notice
* @param $message
* @param array $content
* @param string $module
*/
static public function notice($message,array $content = array(),$module = '')
{
#$level = SEASLOG_NOTICE
}
/**
* warning
* @param $message
* @param array $content
* @param string $module
*/
static public function warning($message,array $content = array(),$module = '')
{
#$level = SEASLOG_WARNING
}
/**
* error
* @param $message
* @param array $content
* @param string $module
*/
static public function error($message,array $content = array(),$module = '')
{
#$level = SEASLOG_ERROR
}
/**
* critical
* @param $message
* @param array $content
* @param string $module
*/
static public function critical($message,array $content = array(),$module = '')
{
#$level = SEASLOG_CRITICAL
}
/**
* alert
* @param $message
* @param array $content
* @param string $module
*/
static public function alert($message,array $content = array(),$module = '')
{
#$level = SEASLOG_ALERT
}
/**
* emergency
* @param $message
* @param array $content
* @param string $module
*/
static public function emergency($message,array $content = array(),$module = '')
{
#$level = SEASLOG_EMERGENCY
}
/**
*
* @param $level
* @param $message
* @param array $content
* @param string $module
*/
static public function log($level,$message,array $content = array(),$module = '')
{
}
}
SeasLog
[base]
wait_analyz_log_path = /log/base_test
[fork]
; 1 0
fork_open = 1
;
fork_count = 3
[warning]
email[smtp_host] = smtp.163.com
email[smtp_port] = 25
email[subject_pre] = -
email[smtp_user] = [email protected]
email[smtp_pwd] = seaslog#demo
email[mail_from] = [email protected]
email[mail_to] = [email protected]
email[mail_cc] = [email protected]
email[mail_bcc] =
[analyz]
; enum
; SEASLOG_DEBUG "debug"
; SEASLOG_INFO "info"
; SEASLOG_NOTICE "notice"
; SEASLOG_WARNING "warning"
; SEASLOG_ERROR "error"
; SEASLOG_CRITICAL "critical"
; SEASLOG_ALERT "alert"
; SEASLOG_EMERGENCY "emergency"
test1[module] = test/bb
test1[level] = SEASLOG_ERROR
test1[bar] = 1
test1[mail_to] = [email protected]
test2[module] = 222
test2[level] = SEASLOG_WARNING
test3[module] = 333
test3[level] = SEASLOG_CRITICAL
test4[module] = 444
test4[level] = SEASLOG_EMERGENCY
test5[module] = 555
test5[level] = SEASLOG_DEBUG
crontab
; 3
0 3 * * * /path/to/php /path/to/SeasLog/Analyzer/SeasLogAnalyzer.php
Demo:
<?php
/**
* @author [email protected]
* Date: 14-1-27 4:41
*/
echo '<pre>';
var_dump(SEASLOG_TYPE_INFO,SEASLOG_TYPE_INFO_STR);
var_dump(SEASLOG_TYPE_WARN,SEASLOG_TYPE_WARN_STR);
var_dump(SEASLOG_TYPE_ERRO,SEASLOG_TYPE_ERRO_STR);
var_dump(seaslog_get_basepath());
var_dump(seaslog_get_lastlogger());
var_dump(seaslog_get_basepath());
var_dump(seaslog('test info'));
var_dump(seaslog('test warning', SEASLOG_TYPE_WARN));
var_dump(seaslog('test error', SEASLOG_TYPE_ERRO));
var_dump(seaslog_set_basepath('/log/base_test'));
var_dump(seaslog_set_logger('testModule/app1'));
var_dump(seaslog('test info 2'));
var_dump(seaslog('test warning 2', SEASLOG_TYPE_WARN));
var_dump(seaslog('test error 2', SEASLOG_TYPE_ERRO));
var_dump(seaslog_get_basepath());
var_dump(seaslog_get_lastlogger());
var_dump(seaslog_get_basepath());
var_dump(seaslog('test error 3', SEASLOG_TYPE_ERRO, 'test/bb'));
var_dump(seaslog_analyzer_count()); // == seaslog_analyzer_count(ALL_TYPE);
var_dump(seaslog_analyzer_count(SEASLOG_TYPE_ERRO)); // == seaslog_analyzer_count(SEASLOG_TYPE_ERRO,'*')
var_dump(seaslog_analyzer_count(SEASLOG_TYPE_ERRO,'20140211.log'));
var_dump(seaslog_analyzer_detail(SEASLOG_TYPE_ERRO)); // == seaslog_analyzer_detail(SEASLOG_TYPE_ERRO,'*')
var_dump(seaslog_analyzer_detail(SEASLOG_TYPE_ERRO,'20140211.log'));
echo "
";