gpt4 book ai didi

php - 在 Laravel 日志中记录 PHP 异常

转载 作者:可可西里 更新时间:2023-10-31 23:40:22 26 4
gpt4 key购买 nike

我开始在 Laravel 4 中为我的应用程序创建自定义日志功能,自定义消息一切正常,但是当我尝试在 try..catch(Exception $e) 中记录异常消息时> 不会将此异常写入日志文件。

<?php namespace Api\ApplicationEvents;

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

class LogWritter {

public static function write( $logMessage, $logLevel)
{
$date = date('d_m_y');

$logFile = public_path() . '\logs\log_' . $date . '.log';

if ( !file_exists($logFile)) {
$fp = fopen($logFile, 'w');
fwrite($fp, '');
fclose($fp);
}

$log = new Logger('Menu App Log: ');

switch ($logLevel) {
case 'Info':
$log->pushHandler( new StreamHandler($logFile, Logger::INFO) );
break;

case 'Warn':
$log->pushHandler( new StreamHandler($logFile, Logger::WARNING) );
break;

case 'Error':
$log->pushHandler( new StreamHandler($logFile, Logger::ERROR) );
break;
}

$log->addInfo($logMessage);
}
}
?>

函数的调用是这样的:

try { 
// code goes here
} catch (Exception $e) {
$exception = $e->getMessage();
Api\ApplicationEvents\LogWritter::write( $exception, 'Error');
}

但是暂时不能在日志文件中写入异常信息

谁能帮我解决这个问题,我做错了什么?

最佳答案

您是否尝试过单独测试您的 Api\ApplicationEvents\LogWritter::write( $exception, 'Error'); 代码?

例如试试这个来测试你的代码是否有效

try { 
throw new RuntimeException()
} catch (Exception $e) {
$exception = $e->getMessage();
Api\ApplicationEvents\LogWritter::write( $exception, 'Error');
}

如果一切正常,您就知道您的类和方法没有任何问题。

编辑:

试试这个:

switch ($logLevel) {
case 'Warn':
$log->pushHandler( new StreamHandler($logFile, Logger::WARNING) );
$log->addWarning($logMessage);
break;

case 'Error':
$log->pushHandler( new StreamHandler($logFile, Logger::ERROR) );
$log->addError($logMessage);
break;

default:
$log->pushHandler( new StreamHandler($logFile, Logger::INFO) );
$log->addInfo($logMessage);
}

关于php - 在 Laravel 日志中记录 PHP 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24898790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com