相当于 PHP error_log 的信息日志?

发布于 2024-12-07 19:53:36 字数 97 浏览 1 评论 0原文

我使用 error_log 进行日志记录,但我意识到必须有一种更惯用的方法来记录应用程序进度。有info_log吗?或同等水平?

I use error_log for my logging, but I'm realizing that there must be a more idiomatic way to log application progress. is there an info_log ? or equivalent ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

缘字诀 2024-12-14 19:53:36

您可以使用 error_log 附加到指定文件。

error_log($myMessage, 3, 'my/file/path/log.txt');

请注意,您需要具有 3(消息类型)才能附加到给定文件。

您可以在脚本中尽早创建一个函数来包装此功能:

function log_message($message) {
    error_log($message, 3, 'my/file/path/log.txt');   
}

You can use error_log to append to a specified file.

error_log($myMessage, 3, 'my/file/path/log.txt');

Note that you need to have the 3 (message type) in order to append to the given file.

You can create a function early on in your script to wrap this functionality:

function log_message($message) {
    error_log($message, 3, 'my/file/path/log.txt');   
}
分开我的手 2024-12-14 19:53:36

相当于 syslog()LOG_INFO 常量:

syslog(LOG_INFO, 'Message');

如果你想使用一个文件(这不是一个好主意,因为没有日志轮换并且可能会因为并发而失败),你可以这样做:

file_put_contents($filename, 'INFO Message', FILE_APPEND);

The equivalent is syslog() with the LOG_INFO constant:

syslog(LOG_INFO, 'Message');

If you want to use a file (not a good idea because there is no log rotation and it can fail because of concurrency), you can do:

file_put_contents($filename, 'INFO Message', FILE_APPEND);
烧了回忆取暖 2024-12-14 19:53:36

我建议你使用 Monolog:
https://github.com/Seldaek/monolog

可以通过composer添加依赖:

composer require monolog/monolog

然后就可以初始化一个文件流日志,对于一个名为your-app-name的应用程序,到文件path/to/your.log中,如下:

<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('your-app-name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

Monolog非常强大,你可以实现多种类型的处理程序,格式化器和处理器。值得一看:
https://github.com/Seldaek/ monolog/blob/master/doc/02-handlers-formatters-processors.md

最后这样称呼它:

// add records to the log
$log->warning('Foo');
$log->error('Bar');

为了使其全局化,我建议您将其添加到您的依赖项中注入器(如果有的话),或者使用带有静态调用的单例。

如果您想了解更多详细信息,请告诉我。

I would recommend you to use Monolog:
https://github.com/Seldaek/monolog

You can add the dependency by composer:

composer require monolog/monolog

Then you can initialize a file streaming log, for an app called your-app-name, into the file path/to/your.log, as follow:

<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('your-app-name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

Monolog is very powerful, you can implement many types of handlers, formatters, and processors. It worth having a look:
https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md

And finally call it like:

// add records to the log
$log->warning('Foo');
$log->error('Bar');

In order to make it global, I recommend you to add it to your dependency injector, if you have one, or use a singleton with static calls.

Let me know if you want more details about this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文