kmd / logviewer
Requires
- php: >=5.3.7
- illuminate/filesystem: ~4.0
- illuminate/support: ~4.0
- psr/log: ~1.0
- symfony/finder: ~2.3
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
README
#Laravel 4 LogViewer
轻松查看和删除 Laravel 4 的日志。
灵感来源于 David Morrow 的 CodeIgniter 的 Fire Log 和 Eric Barnes 的 Laravel 3 的 Laravel Log Viewer。
由 Micheal Mand 创建和维护。版权 © 2013。许可协议:MIT 许可证。
#关于 Laravel 4.1 的一些说明
截至目前(2013-11-29),新的 Laravel 4.1 应用程序记录日志的方式与以前不同。虽然这 技术上 不会破坏 LogViewer,但 LogViewer 也不知道如何处理这些变化。以下是一个快速修复方法:
在你的 app/start/global.php
,第 34 行更改
Log::useFiles(storage_path().'/logs/laravel.log');
到
$logFile = 'log-'.php_sapi_name().'.txt'; Log::useDailyFiles(storage_path().'/logs/'.$logFile);
这仅适用于 Laravel 4.1 的新安装。如果你已升级了现有的 4.0 应用程序(并且没有更改日志的创建和存储方式),一切应该仍然正常工作。
##演示
##安装
将 kmd/logviewer
添加到 composer.json
的依赖中
{ ... "require": { ... "kmd/logviewer": "1.2.*" ... }, }
更新 composer
$ php composer.phar update
将提供者添加到你的 app/config/app.php
'providers' => array( ... 'Kmd\Logviewer\LogviewerServiceProvider', ),
发布包资源
$ php artisan asset:publish kmd/logviewer
(可选) 你可以配置你的 composer.json
,以便在每次 $ composer update
后执行此操作
"scripts":{
"post-update-cmd":[
"php artisan asset:publish kmd/logviewer",
"php artisan optimize",
]
},
(可选) 发布包配置
$ php artisan config:publish kmd/logviewer
请注意:如果你已在你的 app/config/packages/kmd/logviewer/config.php
中进行了更改,请不要再次发布包配置。它将覆盖你的配置而没有任何警告。
##使用和配置
###使用
默认情况下,LogViewer 将注册几个路由
logviewer
-> 跳转到今天的日志,显示所有级别。logviewer/$app/$sapi/$date/delete
-> 在$date
(格式为Y-m-d
) 上删除$sapi
(参见: php_sapi_name) 的日志。logviewer/$app/$sapi/$date/$level?
-> 显示$sapi
在$date
上的日志,带有$level
(如果没有提供,则默认为所有)。
LogViewer 还注册了几个过滤器
logviewer.logs
: 聚合你在配置的监控目录中的所有日志,并将它们与$logs
变量共享。logviewer.messages
: 检查会话中是否存在成功、错误或信息闪存消息,并将$has_messages
变量设置为 true 或 false。
###配置
base_url
: LogViewer 可用的 URL。你可以将其嵌套(例如:admin/logviewer
)。默认:logviewer
。filters
: 应用到路由之前和之后的过滤器。我们默认不定义任何过滤器,因为并非每个人都使用身份验证或相同的过滤器名称。global
: 影响整个 logviewer 的过滤器。例如:'global' => array('before' => 'auth'),
将默认的 Laravelauth
过滤器应用于 logviewer,要求所有路由都需要登录用户。view
: 影响查看日志文件的工具。delete
:过滤影响日志文件删除的操作。
log_dirs
:要监控的日志目录的关联数组。数组键是应用程序的“名称”,值是对其app/storage/logs
目录的路径(无尾斜杠)。默认:array('app' => storage_path().'/logs')
。log_order
:按升序或降序排列日志内容。默认:'asc'。per_page
:分页显示每页的日志消息数。默认:10。view
:用于显示日志的视图名称(和位置)。有关传递给此视图的变量的详细信息,请参阅“高级用法”部分。默认:'logviewer::viewer'。p_view
:要使用的分页视图。当使用Bootstrap 3作为应用程序的默认值时,LogViewer中的分页会出错。如果您创建了自己的视图,确保在使用Bootstrap 3(或编写自己的分页视图)时更改此选项。默认:'pagination::slider'。
高级用法
不喜欢LogViewer的外观?需要更好地将其与您的应用程序主题集成?您可以通过创建自己的视图并更改配置选项来实现。以下是要发送到视图的变量
$has_messages
:布尔值。logviewer.messages
过滤器确定会话中是否有成功、错误或信息闪存消息。用于隐藏闪存消息容器。$logs
:数组。由logviewer.logs
过滤器生成的聚合日志,来自所有监控的应用程序。按SAPI和应用程序分组。结构- SAPI作为键,值是一个数组,其键为
sapi
:人类可读的SAPI。logs
:应用程序的“短名称”作为键,值是日志日期的数组。
- SAPI作为键,值是一个数组,其键为
$log
:数组。当前选择的日志内容。每条消息都被分割成一个数组。结构level
:字符串。日志消息的级别。header
:字符串。日志消息的第一行。stack
:字符串。日志消息的其余部分。如果消息没有包含堆栈跟踪,则可能为空。
$empty
:布尔值。当前日志是否为空。$date
:字符串。当前选择日志的日期。$sapi
:字符串。当前选择日志的人类可读的SAPI。$sapi_plain
:字符串。当前选择日志的SAPI。用于URI。$url
:字符串。配置中的基本URL。$levels
:数组。每个可能的日志级别,按psr/log
。$path
:字符串。当前选择日志的应用程序的数组键。