打印log
入口文件 //日志记录配置
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的更多相关文章
- 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类
快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...
- 解决华为手机不打印Log信息的问题
在之前安装了Android Studio后,发现了一个很苦恼的事情,就是在程序中的写Log语句,不能正常的在Logcat中打印出来,这对于解决程序bug真是一刀切断,让人无从下手,在各种尝试后,首先我 ...
- Android Java层,Native层,Lib层打印Log简介【转】
本文转载自:https://blog.csdn.net/AndroidMage/article/details/52225068 说明: 这里我根据个人工作情况说明在各个层打印log.如有问题欢迎拍砖 ...
- iOS 设备屏幕上实时打印 Log 的小工具
需求 写这个小工具的想法,主要来源于很多团队都会用友盟.TalkingData 等第三方框架做自定义事件统计:不过统计代码加好之后,没有很好的方法来让测试工程师验证一下事件加上了没有,调用次数有没有重 ...
- Android 打印log 在logcat 看不到
今天调试一个问题,因为是插件,只能通过打印log 定位问题. 但是打印了log 一直没有看到. 代码如下: Log.d("","aaaa24"); 后来发现是需 ...
- lua 写逻辑打印log时,打印到一半后停止不再打印,程序停止
问题描述:ubuntu下用lua开发游戏电子邮件模块,自己测试时向用户推送100封,而用户最多只能有50封.这是调用sysdelete删除一些邮件.当打印log时,打印到一半后程序中途停止.将打印lo ...
- Xposed框架Hook Android应用的所有类方法打印Log日志
本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80954759 在进行Android程序的逆向分析的时候,经常需要Android程 ...
- 通过adb命令打印log
1.adb logcat --打印当前设备上所有日志 2.adb logcat | findstr *** --过滤仅含***的日志 3.adb logcat *:W --过滤打印严重级别W及以上 ...
- Postman----打开postman console控制台,查看接口测试打印log
经常在脚本中使用变量时,你可能需要看到变量获取到的值,你可以使用Postman Console去实现的.操作步骤:应用菜单-->View--->Show Postman Console,去 ...
- Android.util.Log 关于Android开发中打印log
日常Android开发真机调试过程经常会遇到系统日志过多过快,想看的内容一闪而过的问题.而自定义些log可以很好的解决这些问题. 代码中添加 log androidsdk中提供了log输出的ap ...
随机推荐
- System.BadImageFormatException : 未能加载文件或程序集“Medici.PaymentRecover, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。
System.BadImageFormatException : 未能加载文件或程序集“xxxxx.xxxxx, Version=1.0.0.0, Culture=neutral, PublicKey ...
- 查找“CDN、负载均衡、反向代理”等大型网络真实IP地址的方法
首先,CDN.负载均衡.反向代理还分为很多层,有时查出来的是最外层的 CDN 服务器群,真实的机器是不对外开放的,类似这样的: 用户 → CDN 网络 → 一台或多台真实机器 ↗ CDN Server ...
- Java内存区域-- 运行时数据区域
jvm在执行Java程序时,会把它所管理的内存划分为若干个不同的数据区.这些区域都有各自的用途,以及创建和销毁的时间. 有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销 ...
- PHPstorm设置连接FTP,进行文件上传、下载、比较
内容转载自:http://www.cnblogs.com/jikey/p/3486621.html 如何在 ...
- C++ security issue analyze
https://sploitfun.wordpress.com/about-2/ “Happiness is only real when shared” – Into the wild http:/ ...
- uname是什么?
uname= unix +name, 是指unix 这个操作系统的 名字, 包括 主机名, 内核版本 架构 平台名称等等
- 如何获取客户端MAC地址(三个方法)
方法一: 调用Windows的DOS命令,从输出结果中读取MAC地址: public static String getMACAddress() { String address = "&q ...
- 密码学初级教程(五)消息认证码MAC-Message Authentication Code
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 MAC能识别出篡改和伪装,也就是既可以确认消息的完整性,也可以进行认证. 消息认证码的输入包 ...
- 湖南附中模拟day1 金坷垃
题意描述"没有金坷垃,怎么种庄稼?"花花家有一块田,所有庄稼排成了 N 行 M 列.初始时,每棵庄稼都有一个自己的高度hi;j.花花每次可以使用 1mol 的金克拉使一棵庄稼的高度 ...
- BSA基础数据维护
平台 BSA基础数据维护 .扇区五个字段的内容 本来值为0,经过107上计算解析,得出正常的数值.然后106上报(200050),得到回复(200051). 查看回复数据,是否有错误.比如提示104 ...