<?php
|
|
namespace MultiLogging;
|
#创建日期:2012-4-13 下午4:10:48
|
#作者:zhouliang
|
include_once 'Log4Me.php';
|
include_once 'BaseConfig.php';
|
|
class MultiLogging
|
{
|
#一些指定目录时常用的定义
|
const strLogDir = "\\InterfaceLog";
|
|
#每次记录LOG同时写入到这三个log
|
private $m_arrayLog = null;
|
|
#根目录
|
private $m_strDirRoot = '';
|
|
#参数$strRootDir为根目录,指定后,以后每次新加的日志对象都会以此为根目录
|
#$strFileDir,根目录的下级目录(主要是为了便于分类)
|
#$strFileName,指定日志的标识符文件名
|
function __construct($strRootDir, $strFileDir, $strFileName, $strExtraInfo = '', $writeMode = \Log4Me\DEF_WRITE_MODE)
|
{
|
if (bNewStyleLogging) {
|
$this->m_strDirRoot = strLogBaseDir . "\\ServerLog\\" . \CommFunc\GetMonth() . "\\";
|
} else {
|
$this->m_strDirRoot = $strRootDir;
|
}
|
|
#构造日志对象和数组
|
|
$this->m_arrayLog = array();
|
$this->AddLogObj($strFileDir, $strFileName, $strExtraInfo, $writeMode);
|
}
|
|
#增加log对象
|
public function AddLogObj($strFileDir, $strFileName, $strExtraInfo = '', $writeMode = \Log4Me\DEF_WRITE_MODE)
|
{
|
#获得任意一个日志对象,取得它的扩展输出内容
|
if (count($this->m_arrayLog)) {
|
foreach ($this->m_arrayLog as $log) {
|
$strExtraInfo = $log->GetAffixStr() . " " . $strExtraInfo;
|
break;
|
}
|
}
|
|
foreach ($this->m_arrayLog as $log) {
|
$log->SetAffixStr($strExtraInfo);
|
}
|
|
if (bNewStyleLogging) {
|
$strPhpDir = $this->m_strDirRoot . self::strLogDir . "\\" . date("d", time()) . '\\' . $strFileDir;
|
} else {
|
$strPhpDir = $this->m_strDirRoot . self::strLogDir . '\\' . $strFileDir;
|
}
|
$logPhpFile = new \Log4Me\Log4Me($strPhpDir, $strFileName, \Log4Me\DEF_LOG_LEVEL, $writeMode);
|
$logPhpFile->SetAffixStr($strExtraInfo);
|
$this->m_arrayLog[$strFileName] = $logPhpFile;
|
}
|
|
#移除log对象,如果存在的话
|
private function RemoveLogObj($logName)
|
{
|
$logObj = GetLogObj($logName);
|
unset($logObj);
|
}
|
|
#根据log名,获得Log对象
|
public function &GetLogObj($logName)
|
{
|
if (!array_key_exists($logName, $this->m_arrayLog)) {
|
return null;
|
}
|
return $this->m_arrayLog[$logName];
|
}
|
|
public function Debug($info)
|
{
|
foreach ($this->m_arrayLog as $log) {
|
$log->Debug($info);
|
}
|
}
|
|
public function Info($info)
|
{
|
foreach ($this->m_arrayLog as $log) {
|
$log->Info($info);
|
}
|
}
|
|
public function Warn($info)
|
{
|
foreach ($this->m_arrayLog as $log) {
|
$log->Warn($info);
|
}
|
}
|
|
public function Error($info)
|
{
|
foreach ($this->m_arrayLog as $log) {
|
$log->Error($info);
|
}
|
}
|
|
public function Fatal($info)
|
{
|
foreach ($this->m_arrayLog as $log) {
|
$log->Fatal($info);
|
}
|
}
|
}
|