所有分类
  • 所有分类
  • 后端开发
PHP 命令行工具开发中如何启用日志记录?

PHP 命令行工具开发中如何启用日志记录?

记录命令行参数等信息以调试和分析。命令行工具开发中的日志记录当处理复杂或耗时的命令行操作时,日志记录至关重要,因为它有助于调试错误、跟踪程序执行并分析性能。函数,可用于向系统日志记录器写入消息:实战案例:记录命令行参数通过执行此脚本,您将看

做PHP命令行工具开发别忘了写日志!不管你是菜鸟还是大佬,它都是个好帮手,帮你找bug、理清程序流程。那今天我们就来聊聊如何搞定这个事情。

使用内置的error_log函数

首先PHP有个error_log函数,它可是你的好帮手!只要告诉它要记录什么信息,它就能帮你存到电脑日志里面。比如想记录警告时,可以这样写:

php
error_log("这是一个警告消息", 0);

“0”提醒你要在系统日志里加些东西。别慌,还有一步是设定消息的严重性,用E_USER_NOTICE或E_USER_WARNING等来表示,这样就知道重要性了。

指定日志级别常量以写入消息

说到日志级别,可得搞清楚啥时候选哪级。比如,E_USER_NOTICE就是小提示,E_USER_WARNING那可算是大告警。怎么决定?全凭个人喜好这边说比如想记录警告消息,这样记就对了:

警告:”这分明就是一则警告信息!”

PHP 命令行工具开发中如何启用日志记录?

这样做,你会发现消息有多么重要。接下来,你就按照这个标准去挑消息,只看你关心的内容就好!

使用第三方日志记录库

别说PHP自带的error_log不好用,赶紧找个救星!像Monolog和PSR-3这样的库就很给力。它们帮你解决日志格式,过滤器还有处理程序这些头疼事。安装后,你的项目就可以开始使用这些库记录日志了。比如用Monolog记录个消息,只需这么做:

use MonologLogger;

用下Monolog的流处理程序;

$log = new Logger(‘name’);

把日记导出来,随便啥地方都行,警告级别的就可以~

$log->warning(‘Foo’);

$log->error(‘Bar’);

这下子,你就可以简单地把要紧事儿记到对应的日记里面。这儿还有个好处就是,你可以设定提示的等级,比如说警告啥的,这样就能更精确地了解问题有多严重了

设置日志级别

记录命令行参数等信息以调试和分析

error_log("Error message");

记命令行参数有点麻烦不过学会用它们后,就算弄错了也能很快找到解决办法。比如说,要把某个命令行参数记住的话,就是这么干滴:

来,看看这个Command Line里的东西:error_log(print_r($argv,true)).

这些设定好的参数会被保存进系统日志里,你什么时候想看就可以瞅瞅,排查bug、解决问题更轻松!

确保工具具有写入系统日志的权限

说到权限这个东西,相对来说有点儿头晕脑胀。你想要能让你的小玩意儿正确记录日志的话,得先知道怎么给它设定合适的权限才行。假如说你希望你的小玩艺儿能够在系统日志上留下点信息,那么请看下面这个简单明了的操作指南~

给”path/to/your.log”这个日志文件设置下权限为777~

这个小助手,就是可以让你把它放进电脑里做记事提醒!如果你觉得范围不够,也可以随自己喜欢调大一些,比如变成0755或0777试试看,这样就更好掌控了~

改日志级别挺好玩的!不过记得看时间什么时候该怎么调,别搞得日志太多或是太卡哟。比如说,假如你想调试的话,那就这么干吧:

让报错提醒告诉你所有类型的出错消息,但千万别牵扯到那些你需不需要显式跳过的警告!

这下你想怎么调日志等级就是你说了算!你就把它调为E_ALL或E_ERROR这样子,想要记录什么重要信息就用什么级别。

实战案例:记录命令行参数

说到实战案例,这可是个大学问。“`php

实战案例:使用Monolog记录日志

学一下用Monolog把日志记下来,无论遇到啥都能很快找出问题在哪儿了。比如,你想记录个小信息,就这样:

实战案例:使用PSR-3记录日志

学会用PSR-3系统记日志,发现问题一准儿能找到症结所在。想用他来记录信息?就这么干:

error_reporting(E_ALL); // 记录所有错误
error_reporting(E_ERROR | E_PARSE); // 只记录错误和解析错误

use PsrLogLoggerInterface;

use PsrLogLogLevel;

大家好,我是MyLogger,其实就是个日志记录器!

咱们在函数里写log(级别,消息,背景信息)。

error_log($message, 0);

}

}

$logger = new MyLogger();

// 获取命令行参数
$args = getopt("s:f:");
// 记录参数值
error_log("Source file: " . $args['s']);
error_log("Filter: " . $args['f']);

注意了这里要警告你一下!$logger->log(“这是个警告信息”);

这时候,你就可以往系统日志里添点料,告诉大家这个消息是啥程度的,比如说警告啦之类的。

说实话PHP命令行里面那个日志功能就是个小技巧。学会了就很轻松,不会的话可能会有点烦。希望你看完这篇文章就能掌握这个技能,好好调校下设置。有什么想法和感想要分享?

原文链接:https://www.icz.com/technicalinformation/web/2024/07/19769.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?