6.0의 로그 비유는 이전 버전에 비해 훨씬 개선되었습니다. 주요 새로운 기능은 다음과 같습니다.
·로그 정보 형식 지정
·다채널 쓰기 지원
· 지연/실시간 쓰기
·로그 정보 처리 이벤트
·로그 수준 지정 채널 쓰기
·로그/채널 닫기 지원
새 버전 변경 사항은 다중 채널 쓰기를 지원한다는 것입니다. 즉, 동시에 추가 로그 채널 쓰기를 추가할 수 있거나 일부 로그 유형에 대해 오류를 이메일 알림으로 보내도록 선택할 수 있습니다. 일부 비정상적인 로그.
기타 변경 사항은 주로 다음과 같습니다.
·WEB 로그와 CLI 로그가 병합되어 단일 형식으로 통합됩니다.
·액세스 정보는 더 이상 기본적으로 기록되지 않으며 직접 기록할 수 있습니다. 필요한 경우
· 독립적인 로그도 JSON 형식 기록을 지원합니다.
로그의 관련 구성은 config/log.php 파일에서 설정할 수 있습니다. 이 문서에서는 주로 새 버전의 변경 사항을 설명합니다. 통나무.
로그 채널
로그 채널의 개념은 로그 정보를 위한 로그 공간을 생성하는 것과 동일합니다. 각 로그 채널의 로그 정보는 독립적인 쓰기 메커니즘 또는 구성 매개변수를 사용합니다. 로그 정보를 사용하면 채널 쓰기를 동적으로 전환하고 동시에 여러 로그 채널에 기록되는 동일한 로그 정보를 지원할 수도 있습니다.
로그 구성 파일의 채널 구성에서 채널을 정의할 수 있습니다. 기본적으로 파일 채널은 하나만 정의됩니다.
// 日志通道列表 'channels' => [ 'file' => [ // 日志记录方式 'type' => 'File', // 日志保存目录 'path' => '', // 单文件日志写入 'single' => false, // 独立日志级别 'apart_level' => [], // 最大日志文件数量 'max_files' => 0, // 使用JSON格式记录 'json' => false, // 日志输出格式化 'format' => '[%s][%s] %s', // 是否实时写入 'realtime_write' => false, ], // 其它日志通道配置 ],
각 로그 채널은 로그 쓰기 방법을 결정하는 유형 매개변수를 지정해야 합니다. 파일은 파일 로그 쓰기를 의미합니다. 다른 쓰기 방법을 지정해야 하는 경우 추가 확장 프로그램을 설치해야 합니다. 그러나 다른 로그 채널에 대해 동일한 유형을 지정할 수도 있지만 다른 쓰기 경로와 같이 다른 구성 매개변수는 다릅니다.
어떤 로그 쓰기 유형을 사용하든 각 로그 채널이 지원할 수 있는 공통 구성은 다음과 같습니다.
레벨 매개변수의 사용법은 명령줄 모드를 제외하고 전역 로그 구성과 일치합니다. 기본 로그는 요청 후 한번만 기록되므로 실시간으로 로그 정보를 작성해야 하는 경우 설정해야 합니다.
'realtime_write'=>true,
명령줄 아래에 있으면 설정 여부에 관계없이 실시간으로 자동으로 로그가 기록됩니다.
기본 채널
기본 매개변수를 설정하여 로그의 기본 채널을 정의합니다. 예:
'default'=>'file',
레벨 채널
다른 로그 수준을 설정하고 다른 로그 채널을 사용할 수 있습니다.
'type_channel'=>[ // 对于error日志级别 同时写入file和email两个日志通道 'error'=>['file','email'], ]
레벨 채널을 설정한 후에는 해당 레벨의 로그가 기본 채널에 기록되지 않으니 주의하세요.
로그 채널은 로그 드라이버의 협조가 필요하며, 로그 드라이버를 맞춤 설정할 수도 있습니다.
채널 전환
현재 로그의 기본 쓰기 채널을 수동으로 전환할 수도 있습니다. 예:
Log::channel('email')->info('这是日志信息');
다중 채널 기록을 사용하도록 전환 지원. 예:
Log::channel(['email', 'file'])->info('这是日志信息');
로그 처리
로그 쓰기 예를 들어 이벤트 모니터링을 지원합니다.
Event::listen('think\event\LogWrite', function($event) { if('file' == $event->channel) { $event->log['info'][] = 'test info'; } });
클로저의 매개변수는 LogWrite 이벤트 클래스 객체 인스턴스입니다. 두 가지 속성을 얻을 수 있습니다.
로그 정보는 현재 로그 채널( 녹음이 허용됨) 모든 수준의 로깅 정보.
로그 정보 형식화
시스템은 로그 정보 형식화를 위한 두 가지 매개변수를 제공합니다. 첫 번째는 시간 표시 형식을 사용자 정의하기 위한 time_format이고 두 번째는 로그 출력 형식을 조정하기 위한 형식 매개변수입니다.
'channels' => [ 'file' => [ 'type' => 'file', 'json' =>true 'file_size' => 1024*1024*10, 'time_format' => 'Y-m-d H:i:s', 'format' => '[%s][%s]:%s', ], ],
format 매개변수의 첫 번째 %s는 로그 기록 시간입니다. (로그 시간의 형식은 time_format 매개변수에 의해 정의됩니다.) 두 번째 %s는 로그 수준 세 번째 %s는 로그 정보로, 순서는 지정할 수 없습니다. 조정될.
JSON 형식 로그
는 JSON 형식 기록 파일 로그를 지원하므로 일부 타사 로그 분석 도구에서 로그 분석을 더 편리하게 수행할 수 있습니다.
로그 구성 파일에
return [ 'default' => 'file', 'channels' => [ 'file' => [ 'type' => 'file', 'json' =>true 'file_size' => 1024*1024*10, ], ], ];
를 추가하면 JSON 형식 로깅이 활성화됩니다. CLI 명령줄 로깅도 유효합니다.
和之前版本的区别在于,新版的每个日志信息都是一条JSON数据(旧版本是每个请求一条JSON数据)。
关闭日志
你可以通过调用close方法动态关闭日志写入。
// 关闭全局日志写入 Log::close(); // 关闭某个通道日志写入 Log::close('file');
如果调用close方法动态关闭日志,会自动调用clear方法清空日志。
清空日志
一旦执行save方法后,内存中的日志信息就会被自动清空,如果需要提前清空日志可以使用:
// 清空所有日志 Log::clear(); //清空通道日志可以使用 Log::clear('file');
在清空日志方法之前,你可以使用getLog方法获取内存中的日志。
// 获取(默认通道)日志 $logs = Log::getLog(); // 获取指定通道日志 $logs = Log::getLog('file');
日志清空仅仅是清空内存中的日志。
自定义驱动
日志通道需要自定义日志驱动,该日志驱动需要实现think\contract\LogHandlerInterface接口。
interface LogHandlerInterface { /** * 日志写入接口 * @access public * @param array $log 日志信息 * @return bool */ public function save(array $log): bool; }
众多ThinkPHP教程,尽在PHP中文网,欢迎在线学习!
本文转自:https://blog.thinkphp.cn/1186947
위 내용은 ThinkPHP6.0 버전의 로그 변경 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 ThinkPhp의 내장 테스트 프레임 워크에 대해 논의하여 장치 및 통합 테스트와 같은 주요 기능과 조기 버그 감지 및 개선 된 코드 품질을 통해 응용 프로그램 신뢰성을 향상시키는 방법을 강조합니다.

기사는 실시간 주식 시장 데이터 피드에 ThinkPHP를 사용하여 설정, 데이터 정확도, 최적화 및 보안 측정에 중점을 둡니다.

이 기사는 서버리스 아키텍처에서 ThinkPHP를 사용하기위한 주요 고려 사항에 대해 설명하고 성능 최적화, 무국적 설계 및 보안에 중점을 둡니다. 비용 효율성 및 확장 성과 같은 혜택을 강조하고 도전 과제를 해결합니다.

이 기사에서는 ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱 구현, 설정, 모범 사례, 통합 방법 및 권장 도구에 중점을 둡니다. [159 문자]

ThinkPhp의 IOC 컨테이너는 PHP apps.character 수 : 159의 효율적인 종속성 관리를위한 게으른 하중, 맥락 바인딩 및 메소드 주입과 같은 고급 기능을 제공합니다.

이 기사는 ThinkPhp를 사용하여 실시간 협업 도구를 구축하고 설정, WebSocket 통합 및 보안 모범 사례에 중점을 둡니다.

ThinkPhp는 가벼운 디자인, MVC 아키텍처 및 확장 성을 통해 SaaS 앱에 혜택을줍니다. 다양한 기능을 통해 확장 성을 향상시키고 개발 속도를 높이며 보안을 향상시킵니다.

이 기사는 설치, 구성, 작업 관리 및 확장성에 중점을 둔 ThinkPhp 및 RabbitMQ를 사용하여 분산 작업 큐 시스템을 구축합니다. 주요 문제는 고 가용성 보장, 손상과 같은 일반적인 함정을 피하는 것입니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

뜨거운 주제



