zoukankan      html  css  js  c++  java
  • PHP日志 LOG4PHP 的配置与使用

    • 维护了 一个老项目, 没有日志功能, 就给加了这个log4php,  主要是集成进去很简单,使用起来也够用了。

    1、下载log4php

    2、创建配置文件 

    log4php_config.xml
    <configuration xmlns="http://logging.apache.org/log4php/">
        <appender name="default" class="LoggerAppenderConsole" />
    
        <appender name="basic_file_appender" class="LoggerAppenderDailyFile">
            <layout class="LoggerLayoutPattern">
                <param name="conversionPattern" value="%date [%logger] %message%newline" />
            </layout>
            <param name="file" value="log/app.%s.log" /> // log文件夹下  以日期命名的log文件
            <param name="datePattern" value="Y-m-d" />
        </appender>
        <root>
            <level value="debug" />
            <appender_ref ref="basic_file_appender"/>
        </root>
    
        <appender name="route_file_appender" class="LoggerAppenderDailyFile">
            <layout class="LoggerLayoutPattern">
                <param name="conversionPattern" value="%date %p [%logger] %message%newline" />
            </layout>
            <param name="file" value="log/route.%s.log" />
            <param name="threshold" value="error"/>
            <param name="append" value="true" />
            <param name="datePattern" value="Y-m-d" />
        </appender>
        <logger name="Route">
            <level value="debug" />
            <appender_ref ref="route_file_appender" />
        </logger>
    
        <appender name="session_file_appender" class="LoggerAppenderDailyFile">
            <layout class="LoggerLayoutPattern">
                <param name="conversionPattern" value="%date [%logger] %message%newline" />
            </layout>
            <param name="file" value="log/session.%s.log" />
            <param name="datePattern" value="Y-m-d" />
        </appender>
        <logger name="Session">
            <level value="debug" />
            <appender_ref ref="session_file_appender" />
        </logger>
    
        <appender name="InventoryTransaction_file_appender" class="LoggerAppenderDailyFile">
            <layout class="LoggerLayoutPattern">
                <param name="conversionPattern" value="%date [%logger] %message%newline" />
            </layout>
            <param name="file" value="log/InventoryTransaction.%s.log" />
            <param name="datePattern" value="Y-m-d" />
        </appender>
        <logger name="InventoryTransaction">
            <level value="debug"/>
            <appender_ref ref="InventoryTransaction_file_appender" />
        </logger>
    
        <appender name="Reserve_file_appender" class="LoggerAppenderDailyFile">
            <layout class="LoggerLayoutPattern">
                <param name="conversionPattern" value="%date [%logger] %message%newline" />
            </layout>
            <param name="file" value="/data0/wmsinventoryapi/Reserve.%s.log" />
            <param name="datePattern" value="Y-m-d.H" />
        </appender>
        <logger name="Reserve">
            <level value="debug"/>
            <appender_ref ref="Reserve_file_appender" />
        </logger>
    
        <appender name="Exception_file_appender" class="LoggerAppenderDailyFile">
            <layout class="LoggerLayoutPattern">
                <param name="conversionPattern" value="%date [%logger] %message%newline" />
            </layout>
            <param name="file" value="log/exception.%s.log" />
            <param name="datePattern" value="Y-m-d" />
        </appender>
        <logger name="Exception">
            <level value="error"/>
            <appender_ref ref="Exception_file_appender" />
        </logger>
    
    </configuration>

    3、LOG类

    <?php
    /**
     * Created by PhpStorm.
     * User: an
     * Date: 2019/4/3
     * Time: 4:35 PM
     */
    require_once('vendor/log4php/Logger.php');
    Logger::configure('vendor/log4php/log4php_config.xml'); // 引入第二步创建的xml配置文件
    
    class L
    {
        public static function __callStatic($name, $args)
        {
            $log = Logger::getLogger('app');
    
            switch ($name)
            {
                case 'error':
                    $log->error($args);
                    break;
                case 'info':
                    $log->info($args);
                    break;
                case 'warn':
                    $log->warn($args);
                    break;
                case 'debug':
                    $log->debug($args);
                    break;
                case 'fatal':
                    $log->fatal($args);
                    break;
                default:
                    break;
            }
        }
    }

    4、使用

    L::debug('日志要记录的内容');
    L::info('日志要记录的内容');
  • 相关阅读:
    iter方法读取文件的例子
    Python的datetime与Decimal数据进行json序列化的简单说明
    路由分发时名称空间的2种写法
    “投票练习”笔记
    基于DRF的图书增删改查练习
    【转】很实用的编程英语词库,共收录一千五百余条词汇
    Django的media配置与富文本编辑器使用的实例
    利用Git版本控制管理你的项目
    docker学习与应用
    SharePoint 2010 以Jquery Ajax方式更新SharePoint列表数据!
  • 原文地址:https://www.cnblogs.com/arvin-an/p/10669082.html
Copyright © 2011-2022 走看看