elmijo/php-error-log

一个小型库,用于以简单、快速和直接的方式管理你的应用程序日志..

2.0 2015-06-14 18:05 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:07:46 UTC


README

Build Status Coverage Status Scrutinizer Code Quality

一个小型库,用于以简单、快速和直接的方式管理你的应用程序日志.. 在一行代码中,我们创建了程序员与PHP的 error_log() 函数之间的一个抽象层。

那么,它有什么特别之处呢?

  • 最大的优点是,你可以通过只更改参数,使用一个函数以三种可能的方式写入日志。
  • 始终如此!! 只有当消息为空时,才不会写入日志。

快速指南

安装

我们可以通过 composer 来完成。

"require":{
  ...
  "elmijo/php-error-log": "2.0"
  ...
}

快速使用

require '../vendor/autoload.php';

$logger = new PHPTools\PHPErrorLog\PHPErrorLog();

$logger->write('probando...');

我有多少种方式可以编写日志?

erro_log 允许你以三种方式编写或管理日志,包括:写入默认的 error.log 文件,通过电子邮件发送或者写入用户定义的文件。

了解魔法函数..

这个库由一个类组成,该类包含一个名为 writepublic static 方法,它用于以任何可能的方式管理日志。

  • 描述:用于写入日志的函数
  • 参数
    • message: string (必需) 包含消息的字符串。
    • type: integer (可选,默认 3) 我们想要标记日志的错误级别,接受值 0 - 7。
    • destination: string (可选) 可以是一个电子邮件地址列表或我们想要写入日志的文件的绝对路径。
    • headers: array (可选) 一个关联数组,包含我们想要添加到电子邮件中的额外头信息,如果我们要通过电子邮件发送日志,则此参数有效。
  • 返回值: TRUE 表示操作成功,FALSE 表示操作失败。

错误级别

类提供了 8 个常量,以简化该参数的使用。

附加头信息(SMTP)

error_log() 在日志的接收者是一个电子邮件地址时使用 mail() 函数,这意味着我们可以定义与 mail() 相同的头信息,在发送电子邮件时,PHPLorError 只支持一小部分头信息,以下列出的是这些头信息。

  • From: 最重要的一项,因为没有它,邮件将不会发送
  • Subject: 邮件的标题。
  • Reply-To: 用户回复的邮箱。
  • Content-type: 默认内容类型为 text/plain charset=iso-8859-1
  • Cc: 向其他邮箱发送副本。
  • Bcc: 向其他邮箱发送隐藏副本。
  • Return-Path: 发送错误时返回的邮箱。

注意:由 PHPErrorLog 自动添加 To 头信息,任何其他传递的头信息将被删除。

将日志发送到默认文件

$logger->write('PHPErrorLog: probando... logs');

$logger->write('MiSistema: probando... logs\n\t\notra forma de hacer logs');

通过电子邮件发送日志

要发送电子邮件,我们需要在机器上安装并配置邮件服务器,或者在运行我们的应用程序的机器上。如果您使用 LINUX,我推荐这个链接 链接

$headers = array(
  'From'    => 'usuario@dominio.com',
  'Subject' => 'Probando PHPErrorLog',
  'Cc'      => 'otrocorreo@dominio.com'
);

$logger->write('probando...',PEL_CRITICAL,"Jerry Anselmi <jerry.anselmi@gmail.com>,Pedro Perez <pperez@dominio.com>,fulano@dominio.com",$headers);

包含HTML内容的电子邮件

$headers = array(
  'Content-type' => 'text/html; charset=iso-8859-1',
  'From'         => 'usuario@dominio.com',
  'Subject'      => 'Probando PHPErrorLog',
  'Cc'           => 'otrocorreo@dominio.com'
);

$logger->write('<h1>PHPErrorLog</h1><br><p>probando...</p>',PEL_WARNING,"Jerry Anselmi <jerry.anselmi@gmail.com>,Pedro Perez <pperez@dominio.com>,fulano@dominio.com",$headers);

将日志发送到用户定义的文件

$logger->write('probando...',PEL_ERROR,realpath('dev.log'));
$logger->write('probando...',PEL_DEBUG,'/ruta/absoluta/del/dev.log');

写入日志可能遇到的问题

  • 消息为
  • 如果想要通过邮件发送,没有添加 From 标题
  • 如果没有写入权限,用户定义的日志将无法写入,但日志会写入到默认的文件中

权限问题

如果定义了日志文件,我们需要将其所有者设置为 Apache 或者给它写权限

  • 选项 1: sudo chown www-data:www-data /绝对路径/dev.log
  • 选项 2: sudo chmod 0766 /绝对路径/dev.log