Rumah rangka kerja php ThinkPHP ThinkPHP6.0版本的日志变化

ThinkPHP6.0版本的日志变化

Dec 16, 2019 pm 01:41 PM
berubah log

ThinkPHP6.0版本的日志变化

6.0的日志类比之前版本完善了很多,主要新特性包括:

    ·日志信息格式化

    ·多通道写入支持

    ·延时/实时写入

    ·日志信息处理事件

    ·日志级别指定通道写入

    ·支持关闭日志/通道

新版的日志类最大的变化就是支持多通道写入,也就是说你可以同时或者给部分日志类型增加另外的日志通道写入,例如对于一些异常日志可以选择发送错误到邮件通知。

其它的变化主要包括:

    ·WEB日志和CLI日志合并并统一格式;

    ·默认不再记录访问信息,需要可以自己记录;

    ·独立日志也支持JSON格式记录;

日志的相关配置可以在config/log.php文件中设置,本篇主要描述下新版日志的变化。

日志通道

日志通道的概念相当于给日志信息做了一个日志空间,每个日志通道的日志信息采用独立的写入机制或者配置参数,你可以给日志信息指定默认的日志通道,也可以动态切换通道写入,并且支持同一个日志信息同时写入多个日志通道。

你可以在日志配置文件的channels配置中定义通道,默认仅定义了一个file通道。

// 日志通道列表
'channels'     => [
    'file' => [
        // 日志记录方式
        'type'           => 'File',
        // 日志保存目录
        'path'           => '',
        // 单文件日志写入
        'single'         => false,
        // 独立日志级别
        'apart_level'    => [],
        // 最大日志文件数量
        'max_files'      => 0,
        // 使用JSON格式记录
        'json'           => false,
        // 日志输出格式化
        'format'         => '[%s][%s] %s',
        // 是否实时写入
        'realtime_write' => false,
    ],
    // 其它日志通道配置
],
Salin selepas log masuk

每个日志通道必须指定type参数,该参数决定了日志的写入方式是什么,file就表示文件日志方式写入,如果需要指定其它的写入方式需要安装额外的扩展。但你也可以给不同的日志通道指定相同的type,只是其它的配置参数不同,例如写入的路径不同之类。

无论使用什么日志写入类型,每个日志通道可以支持的通用配置如下:

1576474151410342.png

level参数的用法和全局日志配置一致,除了在命令行模式下,默认的日志都是在请求结束后统一一次性写入,如果需要实时写入日志信息需要设置。

'realtime_write'=>true,
Salin selepas log masuk

如果在命令行下,无论是否设置都会自动实时写入日志。

默认通道

通过设置default参数定义日志的默认通道,例如:

'default'=>'file',
Salin selepas log masuk

级别通道

可以设置不同的日志级别使用不同的日志通道。

'type_channel'=>[
// 对于error日志级别 同时写入file和email两个日志通道
'error'=>['file','email'],
]
Salin selepas log masuk

设置了级别通道后,该级别的日志不会记录到默认通道,请注意。

日志通道需要日志驱动的配合,你也可以自定义日志驱动。

切换通道

你也可以手动切换当前的日志的默认写入通道,例如:

Log::channel('email')->info('这是日志信息');
Salin selepas log masuk

支持切换使用多个通道记录,例如:

Log::channel(['email', 'file'])->info('这是日志信息');
Salin selepas log masuk

日志处理

日志写入支持事件监听,例如:

Event::listen('think\event\LogWrite', function($event) {
    if('file' == $event->channel) {
        $event->log['info'][] = 'test info';
    }
});
Salin selepas log masuk

闭包的参数是LogWrite事件类对象实例,你可以获取两个属性:

1576473997540347.png

日志信息是一个二维数组,包含了当前日志通道下(允许记录的)所有级别的日志信息。

格式化日志信息

系统提供了两个参数用于日志信息的格式化,第一个是用于自定义时间显示格式的time_format,第二个是调整日志输出格式的format参数。

'channels'    =>    [
    'file'    =>    [
        'type'          => 'file', 
        'json'        =>true
        'file_size'   => 1024*1024*10,    
        'time_format'   =>    'Y-m-d H:i:s',
        'format'        =>    '[%s][%s]:%s',
    ],
],
Salin selepas log masuk

format参数的第一个%s是日志记录时间(日志时间的格式化由time_format参数定义) 第二个%s是日志级别 第三个%s是日志信息,顺序不能调整。

JSON格式日志

可以支持JSON格式记录文件日志,更加方便一些第三方日志分析工具进行日志分析。

在日志配置文件中,添加

return [
    'default'      => 'file',
    'channels'    =>    [
        'file'    =>    [
            'type'          => 'file', 
            'json'        =>true
            'file_size'   => 1024*1024*10,    
        ],
    ],
];
Salin selepas log masuk

即可开启JSON格式记录,CLI命令行的日志记录同样有效。

和之前版本的区别在于,新版的每个日志信息都是一条JSON数据(旧版本是每个请求一条JSON数据)。

关闭日志

你可以通过调用close方法动态关闭日志写入。

// 关闭全局日志写入
Log::close();
// 关闭某个通道日志写入
Log::close('file');
Salin selepas log masuk

如果调用close方法动态关闭日志,会自动调用clear方法清空日志。

清空日志

一旦执行save方法后,内存中的日志信息就会被自动清空,如果需要提前清空日志可以使用:

// 清空所有日志
Log::clear();
//清空通道日志可以使用
Log::clear('file');
Salin selepas log masuk

在清空日志方法之前,你可以使用getLog方法获取内存中的日志。

// 获取(默认通道)日志
$logs = Log::getLog();
// 获取指定通道日志
$logs = Log::getLog('file');
Salin selepas log masuk

日志清空仅仅是清空内存中的日志。

自定义驱动

日志通道需要自定义日志驱动,该日志驱动需要实现think\contract\LogHandlerInterface接口。

interface LogHandlerInterface
{
    /**
     * 日志写入接口
     * @access public
     * @param  array $log 日志信息
     * @return bool
     */
    public function save(array $log): bool;
}
Salin selepas log masuk

众多ThinkPHP教程,尽在PHP中文网,欢迎在线学习!

本文转自:https://blog.thinkphp.cn/1186947

Atas ialah kandungan terperinci ThinkPHP6.0版本的日志变化. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah ID acara 6013 dalam win10? Apakah ID acara 6013 dalam win10? Jan 09, 2024 am 10:09 AM

Log win10 boleh membantu pengguna memahami penggunaan sistem secara terperinci Ramai pengguna mesti menemui log 6013 apabila mencari log pengurusan mereka sendiri. Apakah log win10 6013: 1. Ini log biasa. Maklumat dalam log ini tidak bermakna bahawa komputer anda telah dimulakan semula, tetapi ia menunjukkan berapa lama sistem telah berjalan sejak kali terakhir ia dimulakan. Log ini akan muncul sekali setiap hari pada pukul 12 tepat. Bagaimana untuk menyemak berapa lama sistem telah berjalan Anda boleh memasukkan info sistem dalam cmd. Terdapat satu baris di dalamnya.

Saiz penimbal pembalak untuk kegunaan log Saiz penimbal pembalak untuk kegunaan log Mar 13, 2023 pm 04:27 PM

Fungsinya adalah untuk memberi maklum balas kepada jurutera mengenai maklumat penggunaan dan rekod untuk memudahkan analisis masalah (digunakan semasa pembangunan); Penampan pembalakan ialah kawasan kecil sementara yang digunakan untuk penyimpanan jangka pendek vektor perubahan bagi log semula untuk ditulis pada cakera. Log penimbal tulis ke cakera ialah kumpulan vektor perubahan daripada berbilang transaksi. Walaupun begitu, vektor perubahan dalam penimbal log ditulis ke cakera dalam hampir masa nyata, dan apabila sesi mengeluarkan kenyataan COMMIT, operasi tulis penimbal log dilakukan dalam masa nyata.

Menyelesaikan masalah Isu Log Ralat Acara 7034 dalam Win10 Menyelesaikan masalah Isu Log Ralat Acara 7034 dalam Win10 Jan 11, 2024 pm 02:06 PM

Log win10 boleh membantu pengguna memahami penggunaan sistem secara terperinci Ramai pengguna telah melihat banyak log ralat semasa mencari log pengurusan mereka sendiri. Bagaimana untuk menyelesaikan peristiwa log win10 7034: 1. Klik "Mula" untuk membuka "Panel Kawalan" 2. Cari "Alat Pentadbiran" 3. Klik "Perkhidmatan" 4. Cari HDZBCommServiceForV2.0, klik kanan "Stop Service" dan ubahnya kepada "Mula Manual"

Cara menggunakan pengelogan dalam ThinkPHP6 Cara menggunakan pengelogan dalam ThinkPHP6 Jun 20, 2023 am 08:37 AM

Dengan perkembangan pesat Internet dan aplikasi Web, pengurusan log menjadi semakin penting. Apabila membangunkan aplikasi web, cara mencari dan mencari masalah adalah isu yang sangat kritikal. Sistem pembalakan ialah alat yang sangat berkesan yang boleh membantu kami mencapai tugasan ini. ThinkPHP6 menyediakan sistem pengelogan berkuasa yang boleh membantu pembangun aplikasi mengurus dan menjejaki peristiwa yang berlaku dalam aplikasi dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan sistem pembalakan dalam ThinkPHP6 dan cara menggunakan sistem pembalakan

Cara melihat sejarah log ubat anda dalam apl Kesihatan pada iPhone Cara melihat sejarah log ubat anda dalam apl Kesihatan pada iPhone Nov 29, 2023 pm 08:46 PM

iPhone membolehkan anda menambah ubat dalam apl Kesihatan untuk menjejak dan mengurus ubat, vitamin dan suplemen yang anda ambil setiap hari. Anda kemudian boleh log ubat yang telah anda ambil atau langkau apabila anda menerima pemberitahuan pada peranti anda. Selepas anda mencatatkan ubat anda, anda boleh melihat kekerapan anda mengambil atau melangkaunya untuk membantu anda menjejaki kesihatan anda. Dalam siaran ini, kami akan membimbing anda untuk melihat sejarah log ubat yang dipilih dalam apl Kesihatan pada iPhone. Panduan ringkas tentang cara melihat sejarah log ubat anda dalam Apl Kesihatan: Pergi ke Apl Kesihatan>Semak imbas>Ubat>Ubat>Pilih Ubat>Pilihan&a

Penjelasan terperinci tentang arahan melihat log dalam sistem Linux! Penjelasan terperinci tentang arahan melihat log dalam sistem Linux! Mar 06, 2024 pm 03:55 PM

Dalam sistem Linux, anda boleh menggunakan arahan berikut untuk melihat kandungan fail log: perintah ekor: Perintah ekor digunakan untuk memaparkan kandungan pada akhir fail log. Ia adalah arahan biasa untuk melihat maklumat log terkini. ekor [pilihan] [nama fail] Pilihan yang biasa digunakan termasuk: -n: Tentukan bilangan baris yang akan dipaparkan, lalai ialah 10 baris. -f: Pantau kandungan fail dalam masa nyata dan secara automatik memaparkan kandungan baharu apabila fail dikemas kini. Contoh: tail-n20logfile.txt#Paparkan 20 baris terakhir fail logfile.txt tail-flogfile.txt#Pantau kandungan kemas kini fail logfile.txt dalam arahan kepala masa nyata: Perintah kepala digunakan untuk memaparkan permulaan daripada fail log

Fahami maksud acara ID455 dalam log win10 Fahami maksud acara ID455 dalam log win10 Jan 12, 2024 pm 09:45 PM

Log win10 mempunyai banyak kandungan yang kaya. Ramai pengguna mesti melihat ralat paparan ID455 semasa mencari log pengurusan mereka sendiri. Jadi apa maksudnya. Apakah peristiwa ID455 dalam log win10: 1. ID455 ialah ralat <ralat> yang berlaku dalam <fail> apabila stor maklumat membuka fail log.

Tiga arahan untuk melihat log dalam Linux Tiga arahan untuk melihat log dalam Linux Jan 04, 2023 pm 02:00 PM

Tiga arahan untuk melihat log dalam Linux ialah: 1. perintah ekor, yang boleh melihat perubahan dalam kandungan fail dan fail log dalam masa nyata 2. perintah berbilang ekor, yang boleh memantau berbilang fail log pada masa yang sama; yang boleh Perubahan pada log boleh dilihat dengan cepat tanpa mengacaukan skrin.

See all articles