PHP调用静态方法 封装了__CLASS__、__METHOD__、__LINE__在一个方法,在另一个类里调用方法,显示的不是调用方法的类的类名、方法名、行数。怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?phpfinal class LogWrite{ private static $_logpattern = '#%s#%s#%s#%s'; private static $_logleveltetn = ''; private static $_envtern; const DEBUGFAG = 'DEBUG'; const INFOFAG = 'INFO'; const WARNINGFAG = 'WARNING'; const FATALFAG = 'FATAL'; private static function _write($msg, $levelflag) { if (!is_dir(self::$_logleveltetn)) { mkdir(self::$_logleveltetn, 0777, true); } $log_file = self::$_logleveltetn. 'cgi-' .date("Ymd", time()). '.txt'; $string = sprintf(self::$_logpattern, $levelflag, date('Y-m-d'), getmypid(), $msg); $arr = debug_backtrace()[1];// error_log('['.__CLASS__.']['.__METHOD__.']['.__LINE__."]:$string".PHP_EOL, 3, $log_file); error_log(print_r($arr,true).$string.PHP_EOL, 3, $log_file); } public static function setLogOutputPath() { self::$_logleveltetn = Register::get('_gConfigs')['LOG_PATH']; } public static function debug ($msg) { static::$_envtern = Register::get('_gConfigs')['ENV']; if (static::$_envtern == 'release') { return false; } self::setLogOutputPath(); self::_write($msg, self::DEBUGFAG); } public static function info($msg) {// error_log(static::class, 3, '/tmp/abc.log'); self::setLogOutputPath(); self::_write($msg, self::INFOFAG); } public static function warning($msg) { self::setLogOutputPath(); self::_write($msg, self::WARNINGFAG); } public static function fatal($msg) { self::setLogOutputPath(); self::_write($msg, self::FATALFAG); }} 连接数据库报错 问个Rewrite的规则,我搞了半天,还是不对 php小程序 有好点php程序员么? 请问怎么查数组中的重复内容 关于PHP和Ajax的问题 php+mysql中时间默认值的问题!!!!! 谁能传一份MYSQL安装程序给我 或者下载地址 我把分给他 头痛!转义字符 APACHE能不能绑定二级域名?? 我想问一下php怎么设置项目开启和结束时间 工厂订单排期算法问题
final class LogWrite
{
private static $_logpattern = '#%s#%s#%s#%s';
private static $_logleveltetn = '';
private static $_envtern; const DEBUGFAG = 'DEBUG';
const INFOFAG = 'INFO';
const WARNINGFAG = 'WARNING';
const FATALFAG = 'FATAL'; private static function _write($msg, $levelflag)
{
if (!is_dir(self::$_logleveltetn)) {
mkdir(self::$_logleveltetn, 0777, true);
} $log_file = self::$_logleveltetn. 'cgi-' .date("Ymd", time()). '.txt';
$string = sprintf(self::$_logpattern, $levelflag, date('Y-m-d'), getmypid(), $msg);
$arr = debug_backtrace()[1];// error_log('['.__CLASS__.']['.__METHOD__.']['.__LINE__."]:$string".PHP_EOL, 3, $log_file);
error_log(print_r($arr,true).$string.PHP_EOL, 3, $log_file);
} public static function setLogOutputPath()
{
self::$_logleveltetn = Register::get('_gConfigs')['LOG_PATH'];
} public static function debug ($msg)
{
static::$_envtern = Register::get('_gConfigs')['ENV'];
if (static::$_envtern == 'release') {
return false;
}
self::setLogOutputPath();
self::_write($msg, self::DEBUGFAG); } public static function info($msg)
{
// error_log(static::class, 3, '/tmp/abc.log');
self::setLogOutputPath();
self::_write($msg, self::INFOFAG);
} public static function warning($msg)
{
self::setLogOutputPath();
self::_write($msg, self::WARNINGFAG);
} public static function fatal($msg)
{
self::setLogOutputPath();
self::_write($msg, self::FATALFAG);
}
}