入口文件

//日志记录配置
if (!defined('DS')) {
define('DS', '/');
}
if(!defined('APP_PATH_LOG')){
define('APP_PATH_LOG', LOG_PATH.'admin/');
}
if(!defined('LOG_LEVEL')){
define('LOG_LEVEL', LOG_INFO);
}
function log_message($msg, $level = LOG_INFO, $group = '') {
$args = func_get_args ();
if (! (is_int ( $level ) && $level <= LOG_DEBUG && $level >= LOG_EMERG)) {
return;
}
if (defined ( 'LOG_LEVEL' )) {
$logLevel = LOG_LEVEL;
} else {
$logLevel = LOG_ERR;
}
$logTypes = array (
LOG_DEBUG => 'DEBUG', //
LOG_INFO => 'INFO', //
LOG_NOTICE => 'NOTICE',
LOG_WARNING => 'WARNING',
LOG_ERR => 'ERR',
LOG_CRIT => 'CRIT',
LOG_ALERT => 'ALERT',
LOG_EMERG => 'EMERG' //
); $logType = $logTypes [$level];
//取调用者的方法名
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS & DEBUG_BACKTRACE_PROVIDE_OBJECT, 2); // $msg=sprintf('[%s:%s] ', get_called_class(), ''). $msg;
if(!empty($backtrace) && isset($backtrace[1])){
$backtrace_caller = $backtrace[1];
$call_class_name = isset($backtrace_caller['class']) ? $backtrace_caller['class'] : '';
// $call_line = isset($backtrace_caller['line']) ? $backtrace_caller['line'] : '';
$call_function_name = isset($backtrace_caller['function']) ? $backtrace_caller['function'] : '';
$msg=sprintf('[%s:%s] ', $call_class_name, $call_function_name). $msg;
} $logdir = LOG_PATH;
if (defined ( 'APP_PATH_LOG' )) {
$logdir = APP_PATH_LOG;
} $tmp_msg = '['.date ( 'Y-m-d H:i:s' )."] [{$logType}]";
if(!empty($group)){
$tmp_msg.=" - [{$group}]";
}
$msg = $tmp_msg." - {$msg}\r\n"; //线上文件日志不记录 debug级别日志, 当前日志级别 <= 设定最级别
if ($level <= $logLevel) {
$fn = date ( 'Ymd' ) . ".log"; $fileName = $logdir . DS . $fn; if (! is_dir ( $logdir )) {
mkdir ( $logdir, 0755, TRUE );
}
$fileName = $logdir . DS . $fn;
if (! file_exists ( $fileName )) {
error_log ( $msg, 3, $fileName );
@chmod ( $fileName, 0644 );
} else {
error_log ( $msg, 3, $fileName );
} if (defined ( 'LOG_STDOUT' )) {
echo $msg;
}
}
}
log_message('specialInsertingData:'. json_encode($specialInsertingData),LOG_INFO);
												

打印log的更多相关文章

  1. 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类

    快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...

  2. 解决华为手机不打印Log信息的问题

    在之前安装了Android Studio后,发现了一个很苦恼的事情,就是在程序中的写Log语句,不能正常的在Logcat中打印出来,这对于解决程序bug真是一刀切断,让人无从下手,在各种尝试后,首先我 ...

  3. Android Java层,Native层,Lib层打印Log简介【转】

    本文转载自:https://blog.csdn.net/AndroidMage/article/details/52225068 说明: 这里我根据个人工作情况说明在各个层打印log.如有问题欢迎拍砖 ...

  4. iOS 设备屏幕上实时打印 Log 的小工具

    需求 写这个小工具的想法,主要来源于很多团队都会用友盟.TalkingData 等第三方框架做自定义事件统计:不过统计代码加好之后,没有很好的方法来让测试工程师验证一下事件加上了没有,调用次数有没有重 ...

  5. Android 打印log 在logcat 看不到

    今天调试一个问题,因为是插件,只能通过打印log 定位问题. 但是打印了log 一直没有看到. 代码如下: Log.d("","aaaa24"); 后来发现是需 ...

  6. lua 写逻辑打印log时,打印到一半后停止不再打印,程序停止

    问题描述:ubuntu下用lua开发游戏电子邮件模块,自己测试时向用户推送100封,而用户最多只能有50封.这是调用sysdelete删除一些邮件.当打印log时,打印到一半后程序中途停止.将打印lo ...

  7. Xposed框架Hook Android应用的所有类方法打印Log日志

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80954759 在进行Android程序的逆向分析的时候,经常需要Android程 ...

  8. 通过adb命令打印log

    1.adb logcat  --打印当前设备上所有日志 2.adb logcat | findstr *** --过滤仅含***的日志 3.adb logcat *:W  --过滤打印严重级别W及以上 ...

  9. Postman----打开postman console控制台,查看接口测试打印log

    经常在脚本中使用变量时,你可能需要看到变量获取到的值,你可以使用Postman Console去实现的.操作步骤:应用菜单-->View--->Show Postman Console,去 ...

  10. Android.util.Log 关于Android开发中打印log

    日常Android开发真机调试过程经常会遇到系统日志过多过快,想看的内容一闪而过的问题.而自定义些log可以很好的解决这些问题.   代码中添加 log  androidsdk中提供了log输出的ap ...

随机推荐

  1. 处理ecshp图片上传失真

    默认生成jpg缩略图或商品图的质量是80,有些时候不够满意,现提供调整生成jpg图片的质量的方法找到includes/cls_image.php,在大约250行左右 /* 生成文件 */        ...

  2. thinkphp 3.2.3 连接sql server 2014 WAMPSERVER环境包

    安装 sqlsrv 扩展 首先  sql server 2014 安装没啥说的 链接信息自己设置 php 版本 :5.5.12 sqlsrv 驱动  微软提供了 3.0 和3.1 版本  3.0 对应 ...

  3. Orchard源码分析(1):Orchard架构

      本文主要参考官方文档"How Orchard works"以及Orchardch上的翻译.   源码分析应该做到庖丁解牛,而不是以管窥豹或瞎子摸象.所以先对Orchard架构有 ...

  4. JQ nextALL() 实现遍历

    在我们的 手机端 常常需要 应用到 hide 和 show 的方法 来节省页面的版块 那么我们需要更多的是 需要 show 一个 <li>  hide 剩下的 <li> 那么 ...

  5. yaf扩展

  6. ExtJS请求验证方法

    //登录连接数据库验证 function loginCheck() { var UserName = Ext.getCmp("UserName").getValue(); var ...

  7. ROS Hotspot服务器的搭建与设定!(上网认证)

    注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 说明:由于Hotspot设定的步骤比较多,此文档只讲解如何设定Hotspot的方法,关于ROS的安装与路由上网的配置请自行百度查阅. ...

  8. Yahoo News Digest(雅虎新闻摘要)APP的推出,未来的seo界又要受伤了

    雅虎在 CES 上公布了旗下首款基于 Summly (天才青少年尼克·阿洛伊西奥(Nick D'Aloisio)开发,此前将其公司以3300万美元出售给雅虎)的新闻 APP - Yahoo News ...

  9. MFC Edit控件 追加文本

    // 追加文本到EditControl void InstmDebugMainDlg::AppendText(int controlId, CString strAdd) {     ((CEdit* ...

  10. Google Java编程风格指南中文版

    作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...