当前位置: 首页 > news >正文

ThinkPHP5下自己写日志

1.首先在common.php公共函数文件下写需要的公共函数(appalication/common.php文件下),在此文件下写的函数可以在项目任意页面直接调用

/**
 * 打印log日志
 * @param 文件名 第几行 日志内容
 */
function wx_log($basename=null,$num=null,$msg=null)
    {
        //$msg = [2018-04-11 09:22:56]文件名:wxpay,第29行,[info]:日志信息
        $msg = '['.date("Y-m-d H:i:s").']'.'文件名:'.$basename.',第'.$num.'行,'.'[info]:'.$msg;

        // 日志文件名:日期.txt
        $path = ROOT_PATH.DS.'public'. DS .'logs'. DS .date("Ymd").'.txt';

        file_put_contents($path, $msg.PHP_EOL,FILE_APPEND);
    }

此时,我把日志文件放在了/public/logs/目录下,日志文件名是按照当前日期的格式命名,方便排错

2.调用:直接使用定义的函数,并传入参数(操作的文件名,行数,日志信息)

wx_log('wxpay','29','日志信息');

打印的日志信息如:[2018-04-11 09:22:56]文件名:wxpay,第29行,[info]:日志信息

 注意:

很多时候记录日志需要换行。不建议使用\r\n,因为:
windows\r\n是换行
Mac\r是换行
Liunx\n是换行
但是PHP提供了一个常量来匹配不同的操作系统,即: PHP_EOL
如:file_put_contents("log.txt", "Hello world everyone.".PHP_EOL, FILE_APPEND);

转载于:https://www.cnblogs.com/zxf100/p/8793451.html

相关文章:

  • javascript验证键盘keycode
  • leetcode-169-Majority Element
  • Fabric结合GTID实现Mysql复制高可用
  • 标签button:点击button按钮时,出现了页面自动刷新的情况
  • [转]查询表达式 (F#)
  • UINavigationControlle 之 UINavigationBar及navigationItem关系探讨
  • sublime text2快捷键的使用
  • windows创建进程的3种方式下各API调用层次
  • 看看别人家的孩子
  • nginx和dubbo微服务架构图
  • 北京西客站火车行李托运指南
  • DNS原理和正、反向解析配置
  • android Vibrator 使用
  • Reddit CEO亲自诠释内容审核的无奈
  • 本地磁盘上有SVN的感叹号的解决办法
  • Java基本数据类型之Number
  • magento 货币换算
  • MYSQL 的 IF 函数
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • VUE es6技巧写法(持续更新中~~~)
  • Web标准制定过程
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 第十八天-企业应用架构模式-基本模式
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 物联网链路协议
  • Nginx实现动静分离
  • 阿里云重庆大学大数据训练营落地分享
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​TypeScript都不会用,也敢说会前端?
  • ​什么是bug?bug的源头在哪里?
  • #FPGA(基础知识)
  • (31)对象的克隆
  • (k8s中)docker netty OOM问题记录
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (多级缓存)多级缓存
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET单元测试
  • .net反混淆脱壳工具de4dot的使用
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net连接MySQL的方法
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中 MVC 工厂模式浅析
  • .NET中winform传递参数至Url并获得返回值或文件
  • [ActionScript][AS3]小小笔记
  • [BZOJ3223]文艺平衡树
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [CF543A]/[CF544C]Writing Code