laravel 日志保存目录问题;

php中文网
发布: 2016-12-01 01:27:22
原创
1643人浏览过

laravel的日志保存目录能不能不保存到 storage/logs 目录下?怎么修改?
可不可以自定义文件名?
按照文档配置按日期分割,不管用!还是在laravel.log 里面追加。

laravel 日志保存目录问题;

回复内容:

laravel的日志保存目录能不能不保存到 storage/logs 目录下?怎么修改?
可不可以自定义文件名?
按照文档配置按日期分割,不管用!还是在laravel.log 里面追加。

laravel 日志保存目录问题;

自定义日志

Method 1->简单粗暴

<code class="php">use MonologHandlerStreamHandler;
use MonologLogger;

$log = new Logger('vikin');

$log->pushHandler(
    new StreamHandler(
        storage_path('logs/vikin.log'), 
        Logger::INFO
    )
);

$log->addInfo("test");</code>
登录后复制

Method2->基于ConfigureLogging基类

1、可以使用该方法对laravel原有日志覆盖【一个info,其他级别可自行扩展】

2、作为一个laravel扩展,在需要单独记录日志的地方记录;

1、创建一个类,继承自ConfigureLogging
<code class="php">namespace 你自定义命名空间ConfigureLogging;

use IlluminateFoundationBootstrapConfigureLogging as BaseConfigureLogging;
use MonologFormatterLineFormatter;
use MonologHandlerStreamHandler;
use MonologLogger;

class CustomLog extends BaseConfigureLogging
{
    protected function configureSingleHandler(Application $app, Writer $log)
    {
        // 同方法1一样, 设置日志路径、设置日志级别
        $path = storage_path('logs/vikin.log');
        $level = Logger::INFO;
        $logStreamHandler = new StreamHandler($path, $level);

        // 日志格式:使用laravel原有格式:
        // the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%
"
        $format = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%
";
        $formatter = new LineFormatter($format);
        $logStreamHandler->setFormatter($formatter);

        // 输出日志
        $logger = $log->getMonolog();
        $logger->pushHandler($logStreamHandler);
    }
}</code>
登录后复制

重写configureSingleHandler就相当于重写了一个日志处理器;

5.3.3LOGA日志系统
5.3.3LOGA日志系统

LOGA日志系统即名为"Log AsThis",是如斯开发的日志系统,取简洁,追求效率之意,本日志系统基于PHP+MySQL平台开发,结构简洁,运行速度极快。 LOGA日志系统 5.3.3 更新日志:2018-07-30 [优化]优化后台SESSION; [修复]修复同一域名不同目录安装多个程序潜在问题; [增强]搜索支持extra选项; [更改]群组名,控制器名

5.3.3LOGA日志系统 150
查看详情 5.3.3LOGA日志系统
3、自动加载

修改根目录下的composer.json文件

<code class="json">"psr-4": {
    "App\": "app/",
    "你自定义命名空间\": "文件路径/"
}</code>
登录后复制
4、覆盖

/app/Http/Kernel.php文件中,扩展Kernel类的构造方法

<code class="php">use IlluminateContractsFoundationApplication;
use IlluminateContractsEventsDispatcher;

public function __construct(Application $app, Dispatcher $events)
{
    parent::__construct($app, $events);

    array_walk($this->bootstrappers, function(&$bootstrapper)
    {
        if($bootstrapper === 'IlluminateFoundationBootstrapConfigureLogging')
        {
            //替换为我们自定义的日志处理器
            $bootstrapper = '你自定义命名空间ConfigureLogging';
        }
    });
}</code>
登录后复制
5、使用
<code class="php">Log::info('自定义log处理器');</code>
登录后复制
6、扩展

创建一个ServiceProvider和facade(个人习惯喜欢使用facade);添加至app config中,使用composer自动加载即可;

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号