SocketLog
SocketLog copied to clipboard
thinkphp6 中 log.php这里面大家是怎么配置的
`<?php
// return [
// 'type' => 'SocketLog',
// 'host' => 'localhost',
// //日志强制记录到配置的client_id
// 'force_client_ids' => [ 'abcdefg' ],
// //限制允许读取日志的client_id
// 'allow_client_ids' => [ 'abcdefg' ],
// ];
// +---------------------------------------------------------------------- // | 日志设置 // +----------------------------------------------------------------------
return [ // 默认日志记录通道 'default' => env( 'log.channel', 'socketlog'), // 日志记录级别 'level' => [], // 日志类型记录的通道 ['error'=>'email',...] 'type_channel' => [], // 关闭全局日志写入 'close' => false, // 全局日志处理 支持闭包 'processor' => null,
// 日志通道列表
'channels' => [
'file' => [
// 日志记录方式
'type' => 'File',
// 日志保存目录
'path' => '',
// 单文件日志写入
'single' => false,
// 独立日志级别
'apart_level' => [],
// 最大日志文件数量
'max_files' => 0,
// 使用JSON格式记录
'json' => false,
// 日志处理
'processor' => null,
// 关闭通道日志写入
'close' => false,
// 日志输出格式化
'format' => '[%s][%s] %s',
// 是否实时写入
'realtime_write' => false,
],
// 其它日志通道配置
'socketlog' => [
'type' => 'SocketLog',
'host' => 'localhost',
//日志强制记录到配置的client_id
'force_client_ids' => [ 'abcdefg' ],
//限制允许读取日志的client_id
'allow_client_ids' => [ 'abcdefg' ],
],
],
]; ` 我的是这样的,在网上找了很多资料,不管怎么改,就是不成功。只能来问问大家有在thinkphp6中使用成功的吗
ThinkPHP6 自己添加socketlog的方法: 讲slog.php和 slog.function.php放入 app目录。 编辑app/event.php:
include 'slog.function.php';
slog([
'enable' => true,
//是否打印日志的开关
'host' => 'localhost',
//websocket服务器地址,默认localhost
'optimize' => false,
//是否显示利于优化的参数,如果运行时间,消耗内存等,默认为false
'show_included_files' => false,
//是否显示本次程序运行加载了哪些文件,默认为false
'error_handler' => false,
//是否接管程序错误,将程序错误显示在console中,默认为false
'force_client_id' => isset($_GET['slog']) ? $_GET['slog'] : '',
//日志强制记录到配置的client_id,默认为空
'allow_client_ids' => [],
], 'config');
return [
'bind' => [
],
'listen' => [
'AppInit' => [
function(){
//监听
\think\facade\Db::listen(function ($sql, $time, $explain) {
// 记录SQL
slog($sql . ' [' . $time . 's]', 'trace');
if ($time >= 0.1) {
slog('sql执行时间长', 'error');
}
if (!empty($explain)) {
$arr = array_change_key_case($explain, CASE_LOWER);
if (false !== strpos($arr['extra'], 'Using filesort')) {
slog('Using filesort', 'error');
}
if (!empty($explain)) {
$arr = array_change_key_case($explain, CASE_LOWER);
if (false !== strpos($arr['extra'], 'Using filesort')) {
slog('Using filesort', 'error');
}
if (false !== strpos($arr['extra'], 'Using temporary')) {
slog('Using temporary', 'error');
}
}
});
}
],
....