tmountjr/muted-log

提供了一种“静默”的日志记录器。其主要目的是在堆栈跟踪中不包含参数来记录异常。

v1.0.0 2015-03-20 15:37 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:02:11 UTC


README

简介

此包扩展了Laravel内置的日志功能,以确保在调用monolog时堆栈跟踪中不包含参数。考虑以下示例代码

function throwE($param1)
{
	throw new Exception;
}

try {
	$example = throwE('cleartext parameter');
} catch (Exception $e) {
	Log::error($e);
}

错误日志将包含堆栈跟踪中的参数

[2015-03-18 15:09:49] dev.ERROR: exception 'Exception' in /path/to/function.php:34
Stack trace:
#0 /path/to/app/routes.php(61): throwE('cleartext parameter')

通过将异常替换为此包中的MutedException实例,堆栈跟踪将不会包含实际的参数值

[2015-03-18 15:12:11] dev.ERROR: Exception 'Exception' with message '' in /path/to/function.php:34
Stack trace:
#0 /path/to/app/routes.php(61): throwE([string])

注意参数'cleartext parameter'已被替换为[string]

安装

使用composer安装:composer require tmountjr/muted-log

安装包后,在app/config/app.php中做出以下更改

'providers' => array(
    // ...
    'Tmountjr\MutedLog\MutedLogServiceProvider',
),

// ...

'aliases' => array(
    // ...
    // 'Log' => 'Illuminate\Support\Facades\Log',
    'Log' => 'Tmountjr\MutedLog\Facades\MutedLog',
    // ...
),

请注意,您需要将当前的Log别名替换为该包的facade。

用法

使用此包不需要采取任何特定操作。一旦更改了Laravel内置的Log facade,任何写入日志的异常都将使用MutedException写入。注意,这并不涵盖xdebug打印到屏幕上的堆栈跟踪。

调试注意事项

显然,您不应该在生产日志中包含密码或信用卡信息等敏感数据的堆栈跟踪。然而,在预生产环境中,如果您的开发环境中没有使用实际敏感数据,保留详细的堆栈跟踪可能是有用的。您可以通过更改app/config/app.php中的alias指令(这将设置全局别名)并在app/config/[环境]/app.php中覆盖此行为来按环境覆盖使用的facade,其中[环境]bootstrap/start.php中找到的环境。

return array(
    'aliases' => array(
        'Log' => 'Illuminate\Support\Facades\Log',
    )
);

许可证

MutedLog是开源软件,许可协议为MIT许可证