php下phalcon 日志类Logger
2015-07-03 23:11
666 查看
注意:
其中创建文件夹用到了php中的mkdir,
同一个类中函数之间调用需要加 self::
连接字符串用 .
<?php
use Phalcon\Logger\Adapter\File as FileAdapter;
use Phalcon\Logger\Formatter\Line as LineFormatter;
/**
*
*/
class Log
{
// private static $_format;
private static $_log_name;
private static $_instance;
private $_log_dir;
public static function instance() {
if ( self::$_instance == null ) {
self::$_instance = new self();
}
return self::$_instance;
}
public function set_log_dir($log_dir=__DIR__ . '/../../logs')
{
self::$_log_dir = $log_dir;
}
private function mkdirs($dir, $mode = 0777)
{
//echo $dir.'</br>';
if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
if (!self::mkdirs(dirname($dir), $mode)) return FALSE;
return @mkdir($dir, $mode);
}
public function log($log_value, $log_type="DEBUG")
{
date_default_timezone_set('PRC');
$year = date("Y",time());
$month = date("m",time());
$day = date("d",time());
$dir_file = self::$_log_dir.'/'.$year."/".$month."/".$day;
self::mkdirs($_dir_file);
$log_name = new FileAdapter($dir_file."/".$day.".log");
$formatter = new LineFormatter(" [%type%] - %message% ");//定义信息格式
$_log_name->setFormatter($formatter);
$_log_name->begin();
$_log_name->alert(date("Y-m-d H:i:s",time()));
//输出时间
if (strcasecmp($log_type, "INFO")==0) {
$_log_name->log($log_value,\Phalcon\Logger::INFO);
//输出信息
}
else if(strcasecmp($log_type, "NOTICE")==0){
$_log_name->log($log_value,\Phalcon\Logger::NOTICE);
}
else if(strcasecmp($log_type, "WARNING")==0||strcasecmp($_log_type, "WARN")==0){
$_log_name->log($log_value,\Phalcon\Logger::WARNING);
}
else if(strcasecmp($log_type, "ERROR")==0){
$_log_name->log($log_value,\Phalcon\Logger::ERROR);
}
else {
$_log_name->log($log_value,\Phalcon\Logger::DEBUG);
}
$_log_name->commit();
$_log_name->close();
}
}
// example:
//require "app/util/Log.php";
//$some = Log::instance();
//$some->LogWrite("hello, world","ERROR");
?>
其中创建文件夹用到了php中的mkdir,
同一个类中函数之间调用需要加 self::
连接字符串用 .
<?php
use Phalcon\Logger\Adapter\File as FileAdapter;
use Phalcon\Logger\Formatter\Line as LineFormatter;
/**
*
*/
class Log
{
// private static $_format;
private static $_log_name;
private static $_instance;
private $_log_dir;
public static function instance() {
if ( self::$_instance == null ) {
self::$_instance = new self();
}
return self::$_instance;
}
public function set_log_dir($log_dir=__DIR__ . '/../../logs')
{
self::$_log_dir = $log_dir;
}
private function mkdirs($dir, $mode = 0777)
{
//echo $dir.'</br>';
if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
if (!self::mkdirs(dirname($dir), $mode)) return FALSE;
return @mkdir($dir, $mode);
}
public function log($log_value, $log_type="DEBUG")
{
date_default_timezone_set('PRC');
$year = date("Y",time());
$month = date("m",time());
$day = date("d",time());
$dir_file = self::$_log_dir.'/'.$year."/".$month."/".$day;
self::mkdirs($_dir_file);
$log_name = new FileAdapter($dir_file."/".$day.".log");
$formatter = new LineFormatter(" [%type%] - %message% ");//定义信息格式
$_log_name->setFormatter($formatter);
$_log_name->begin();
$_log_name->alert(date("Y-m-d H:i:s",time()));
//输出时间
if (strcasecmp($log_type, "INFO")==0) {
$_log_name->log($log_value,\Phalcon\Logger::INFO);
//输出信息
}
else if(strcasecmp($log_type, "NOTICE")==0){
$_log_name->log($log_value,\Phalcon\Logger::NOTICE);
}
else if(strcasecmp($log_type, "WARNING")==0||strcasecmp($_log_type, "WARN")==0){
$_log_name->log($log_value,\Phalcon\Logger::WARNING);
}
else if(strcasecmp($log_type, "ERROR")==0){
$_log_name->log($log_value,\Phalcon\Logger::ERROR);
}
else {
$_log_name->log($log_value,\Phalcon\Logger::DEBUG);
}
$_log_name->commit();
$_log_name->close();
}
}
// example:
//require "app/util/Log.php";
//$some = Log::instance();
//$some->LogWrite("hello, world","ERROR");
?>
相关文章推荐
- php计算两个日期时间差
- PHP 实现半个月内只能提交一单数据
- array_sort php
- php如何输出中文json格式字符串
- ThinkPHP RBAC功能小结
- 虚拟账号ftp服务器
- PHP中CGI,FastCGI,PHP-CGI与PHP-FPM对比
- php的基础总结
- ThinkPHP 5.数据库基本操作
- ThinkPHP 4.使用Session
- PHP 中 Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- php使用face++实现一个简单的人脸识别系统
- WindowManager.LayoutParams(上)
- ZeroMQ + libevent in PHP
- php遍历多维数组改变数组的值
- ThinkPHP3.2创建view并调用view
- PHP 报告分拣和生产理念
- ecshop安装出现问题集合(php版本偏高)
- PHP如何过滤这样的空白字符?
- php中的json_encode函数