我们要写一个写日志的函数,首先需要了解需求,我们一般怎么用日志函数呢?例如,程序执行到某一步,我希望把这个变量(地址)$user_address的值打印到日志,我们希望日志里是这么写的:

`xx-xx-xx xx:xx $user_address : 上海市杨浦区xxxxx

然后每一条日志都要换行,都有日期时间,

假设 函数名称是log();

我们希望这么调用他 log(‘useraddress:user_address);

那如果$user_address 是一个数组,我想把一个数组的全都都输出到日志中,该怎么办呢?

有一个函数是print_r($arg,true),第二个参数表示不直接输出,而是输出的结果作为返回值.我们知道他的输出结果为一段字符串.

log函数可以这么写:

log(){$args= func_get_args();//获得传入的所有参数的数组

$numargs= func_num_args();//参数的个数

if($numargs==0) {

$log="";

} elseif($numargs==1) {

$log=$args[0];

}else{$format=array_shift($args);//分割掉函数第一个元素,并且做返回值返回,

'$user_address:%s'$log= vsprintf($format,$args);//把参数代入$format中,}$log=date("[Y/m/d H:i:s] ") .$log. PHP_EOL;//加上时间$file='/usr/share/nginx/html/log.log'$fp=fopen($file,'a');fwrite($fp,$log);fclose($fp);returntrue;

}

用法:

1.打印一般变量$a,

log('得到了$a的值:%s',$a );

2 . 打印一个数组$arr

log('%s',print_r($arr,true));

可以对上面的函数进行改进下:

functionlog2($arg){$log= vsprintf('%s', print_r($arg,true));$log=date('[Y/m/d H:i:s]') .'—'.$log. PHP_EOL;$path= dirname(__FILE__) .'/log.log'$fp=file_put_contents($path,$log, FILE_APPEND);returntrue; }$a=[1,23,45,45]; log2($a);

php 加入日志功能,php怎么写一个日志功能的函数相关推荐

  1. 怎样用java编写日志_用JAVA写一个日志类程序以供大家学习

    中华网络安全联盟    作者:jacoo    来源:本站原创    时间:2006-4-18 说明: 尽管JAVA类库和其他工具提供了不少的纪录程序运行状态的日志类,我发觉也 不是万能的,有时需要根 ...

  2. 动手造轮子:写一个日志框架

    动手造轮子:写一个日志框架 Intro 日志框架有很多,比如 log4net / nlog / serilog / microsoft.extensions.logging 等,如何在切换日志框架的时 ...

  3. vue中手写一个放大镜功能

    vue中手写一个放大镜功能 有的时候需要对图片进行放大,类似于电商的商品放大功能,于是在这个想法上写了一个放大镜的功能,并且在放大镜的基础上新添加了一些小功能,下面开始吧! 放大镜是封装的组件的形式, ...

  4. C语言-怎么写一个自己的qsort函数

    本篇是用冒泡排序的方法来实现qsort函数(排序函数)的功能 要写一个自己的qsort函数,我们首先要知道qsort函数的功能与使用方法 由上面的介绍我们可以知道,qsort函数的作用是用来对数组里的 ...

  5. ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime

    题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...

  6. 利用fputc函数写一个putw(w,fp)函数,将整数w写入fp所指文件中; 利用fgetc函数写一函数getw(fp)从所指文件读出一整数

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 5.利用fputc函数写一个putw(w,fp)函数,将整数w写入fp所指文件中: 利 ...

  7. 写一个判断素数的函数(isprime),在主函数输入一个正整数,输出是否是素数的信息。提示:int main(){int x=23; if (isprime(x)) print

    写一个判断素数的函数(isprime),在主函数输入一个正整数,输出是否是素数的信息. 提示: int main() {int x=23; if (isprime(x)) printf("i ...

  8. 写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息

    写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息(C语言) 题目要求:如标题 思路: 需要判断n是否为素数 可以定义i,使i从2开始循环到n-1,如果n能被i整除,即跳出循环 如果i等于 ...

  9. 写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息。

    写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息. #include <stdio.h> int sushu(int m) { int i,n=0; for(i=2;i& ...

最新文章

  1. mysql登录报错:ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
  2. 开发日记-20190529 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  3. arm 编译安装mysql5.5_ARM64架构下面安装mysql5.7.22
  4. java json注解_返回json用什么注解
  5. oracle数据恢复
  6. Codeforces Round #460 (Div. 2): D. Substring(有向图)
  7. pulse 去马赛克软件_打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星...
  8. java内存堆栈的区别
  9. SCOM 2007 R2监控系统安装部署(一)SCOM简介及安装SQL Server 2008 R2 数据库
  10. 使用麦咖啡打造安全系统
  11. 计算机基础——Excel 2010
  12. Java中按字母顺序对字符串字符进行排序的4种不同方法
  13. 孙鑫VC++深入详解第三章学习笔记
  14. Lync 2010 客户端:无法登陆到Lync,验证服务器中的证书时遇到问题
  15. socket error 10053,10054究竟是怎么引起的
  16. UERANSIM的使用
  17. Codeforces 786A Berzerk(博弈)
  18. element 实现头像上传
  19. NVMe协议详解(二)
  20. 【cocos creater】4.仿《弓箭传说》- 创建游戏背景

热门文章

  1. centos 7 php7 yum源
  2. Nginx 之一:编译安装nginx 1.8.1 及配置
  3. leetcode jump game ii
  4. Android之 Fragment
  5. Visual Studio 内存泄漏检测方法
  6. js实现IE/Firefox的收藏功能
  7. setCharacterEncoding和setContentType
  8. koa --- 监听路由,并使用模板引擎渲染显示
  9. Android 长按照片保存 工具类
  10. Jacoco--测试覆盖率工具