Laravel 5 将数据记录到另一个文件

Posted

技术标签:

【中文标题】Laravel 5 将数据记录到另一个文件【英文标题】:Laravel 5 log data to another file 【发布时间】:2016-12-18 17:36:20 【问题描述】:

有没有办法在 laravel 5 中将数据记录到另一个文件中? 不是标准的吗? 例如,我想使用这样的东西:

Log::info("Some log data", '/path/to/custom/file.log');

或者至少有可能根据日志类型划分日志文件。

Log::info("Some log data");
Log::error("Another log data");

这样信息和错误日志将转到不同的日志文件。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

这里是例子:

Log::useFiles(base_path() . '/path/to/custom/file.log', 'info');
Log::info('Do log this another PATH');

另一种方式

date_default_timezone_set('Asia/Dhaka');
$data = date('Y-m-d');
$time = date('h-A');
Log::useFiles(base_path() . '/log/'.$data.'/'.$time.'-'info.log', 'info');
Log::info('Do log this another PATH');

在此示例中,每个日期都创建一个文件夹,其中包含每小时的单独日志。

关于 Laravel 5:

您还可以更改单个日志路径和名称。

将下面的代码行添加到:bootstrap>>app.phpvery bottom above of return $app;


    # SINGLE LOG
    $app->configureMonologUsing(function($monolog) use ($app) 
        $handler = new Monolog\Handler\StreamHandler($app->storagePath().'/logs/YOUR_SINGLE_LOG_NAME.log');
        $handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true));
        $monolog->pushHandler($handler);
    );

【讨论】:

这能回答问题吗?似乎只显示记录到一个文件。 好吧,没关系 - 我明白了...但是哪里是设置 useFiles 的中心位置? 我想将我的信息写入此日志文件。但是如果写到这里之后,所有其他信息也会写在这里。【参考方案2】:

具体参见https://laravel.com/docs/5.2/errors#configuration自定义独白配置部分。

按照这些说明覆盖默认配置,然后按照这些directions to configure Monolog handlers。

应该是这样的:

$app->configureMonologUsing(function($monolog) 
    $monolog->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG));
);

应该让你朝着正确的方向前进。

【讨论】:

以上是关于Laravel 5 将数据记录到另一个文件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5找不到css文件

Laravel 5 - 文件上传

Laravel 5 教程 - 文件上传

从 excel 文件 Laravel 5 更快地将记录插入数据库

Laravel 路由问题:自动重定向到根文件夹

使用ajax更新数据库记录的Laravel刷新页面