首页
IT
登录
6mi
u
盘
搜
搜 索
IT
PHP LOG类 使用心得
PHP LOG类 使用心得
xiaoxiao
2021-11-18
32
<?
php
/*
* * PHP log 类
*/
class
Config{
public
static
function
getConfig (){
return
array
(
'LOG_FILE'=>'test.txt', 'LOG_LEVEL'=>75
//
INFO
); } }
class
Log
{
private
$LogFile
;
private
$logLevel
;
const
DEBUG = 100
;
const
INFO = 75
;
const
NOTICE = 50
;
const
WARNING =25
;
const
ERROR = 10
;
const
CRITICAL = 5
;
private
function
__construct(){
$cfg
= Config::
getConfig();
$this
->logLevel =
isset
(
$cfg
['LOG_LEVEL']) ?
$cfg
['LOG_LEVEL']:
LOG
::
INFO;
if
(!
isset
(
$cfg
['LOG_FILE']) &&
strlen
(
$cfg
['LOG_FILE'
])){
throw
new
Exception
('can\'t set file to empty'
); }
$this
->LogFile = @
fopen
(
$cfg
['LOG_FILE'],'a+'
);
if
(!
is_resource
(
$this
->
LogFile)){
throw
new
Exception
('invalid file Stream'
); } }
public
static
function
getInstance(){
static
$obj
;
if
(!
isset
(
$obj
)){
$obj
=
new
Log
(); }
return
$obj
; }
public
function
LogMessage(
$msg
,
$logLevel
=
Log
::INFO,
$module
=
null
){
if
(
$loglevel
>
$this
->
logLevel){
return
; } date_default_timezone_set(
'Asian/shanghai'
);
$time
=
strftime
('%x %X',
time
());
$msg
=
str_replace
("\t",'',
$msg
);
$msg
=
str_replace
("\n",'',
$msg
);
$strLogLevel
=
$this
->levelToString(
$logLevel
);
if
(
isset
(
$module
)){
$module
=
str_replace
(
array
("\n","\t"),
array
("",""),
$module
); }
$logLine
= "
$time
\t
$msg
\t
$strLogLevel
\t
$module
\r\n"
;
fwrite
(
$this
->LogFile,
$logLine
); }
public
function
levelToString(
$logLevel
){
$ret
= '[unknow]'
;
switch
(
$logLevel
){
case
LOG
::DEBUG:
$ret
= 'LOG::DEBUG'
;
break
;
case
LOG
::INFO:
$ret
= 'LOG::INFO'
;
break
;
case
LOG
::NOTICE:
$ret
= 'LOG::NOTICE'
;
break
;
case
LOG
::WARNING:
$ret
= 'LOG::WARNING'
;
break
;
case
LOG
::ERROR:
$ret
= 'LOG::ERROR'
;
break
;
case
LOG
::CRITICAL:
$ret
= 'LOG::CRITICAL'
;
break
; }
return
$ret
; } }
$logIns
=
LOG
::
getInstance();
//
print_r($logIns);
$logIns
->logMessage("test",
LOG
::INFO,'myTest'
);
?>
转载请注明原文地址: https://ju.6miu.com/read-678318.html
专利
最新回复
(
0
)