質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

3051閲覧

laravelで標準出力のログとは別で、ltsv形式のログを出力させたい

chokochokochok

総合スコア46

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/12/13 07:16

編集2018/12/17 00:11

いつもお世話になっております。
今回、題名にあるように
「laravelで標準出力のログとは別で、ltsv形式のログを出力させたい」のですが、
色々ググっても情報が出てこなかったので質問をさせていただきました。

やりたいこと:
標準で出力されているものをLtsv形式にする。

【標準出力】

php

1\Log::info('test');

【出力結果】
[2018-12-13 16:08:28] local.INFO: test

これを。。

【出力結果イメージ】
time:2018-12-13 16:08:28 local.INFO: test

悩んでいるところは、そもそもどういったロジックが必要なのかなので、
参考になるものがあれば教えていただきたいです。。。

必要なロジック→
ログを出力するディレクトリの定義
置換機能
出力メソッド

追記:
ltsv形式の文にするところまでできました!

php

1$msg = implode("\t",$ltsv)."\n"; 2$path = self::getFilePath();

$msgにはltsv形式に生成されたメッセージ。
$pathには出力したいディレクトリ(\App\storage\logs\test.log)が入っています。
なので、あとは上記を使用して、ファイルを書き込んでログとして出力したいのですが、
どのようにしたら良いのでしょうか。。。
ざっくりな質問で申し訳ありません。
宜しくお願いします。

追記2
そもそもなのですが、
\Log::info('test');で[2018-12-13 16:08:28] local.INFO: testが出るのであれば、

[2018-12-13 16:08:28] local.INFO:

の部分だけ表示されなくなればと思ったのですが、この設定はどこで行っているのでしょうか??
何度も追記申し訳ありませんが、みなさまのお力をいただければと思います。

追記3
laravelのバージョン5.7.14はです。
記載がなかったので、追記しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mpyw

2018/12/15 07:32

Laravelのログ機能は5.5〜5.7あたりでそれなりの変更が入っているので,マイナーバージョンを明示してください。
chokochokochok

2018/12/17 00:10

バージョンは「5.7.14」でした。記載がなく失礼致しました。
guest

回答1

0

ベストアンサー

LTSVフォーマッターは既に有志の方が作成されているみたいですね。

とりあえず 5.7 のドキュメント貼っておきます。これもとに Formatter の変更を行ってください。

.env

LOG_CHANNEL=ltsv

config/logging.php

php

1<?php 2 3return [ 4 5 /* 6 |-------------------------------------------------------------------------- 7 | Default Log Channel 8 |-------------------------------------------------------------------------- 9 | 10 | This option defines the default log channel that gets used when writing 11 | messages to the logs. The name specified in this option should match 12 | one of the channels defined in the "channels" configuration array. 13 | 14 */ 15 16 'default' => env('LOG_CHANNEL', 'stack'), 17 18 /* 19 |-------------------------------------------------------------------------- 20 | Log Channels 21 |-------------------------------------------------------------------------- 22 | 23 | Here you may configure the log channels for your application. Out of 24 | the box, Laravel uses the Monolog PHP logging library. This gives 25 | you a variety of powerful log handlers / formatters to utilize. 26 | 27 | Available Drivers: "single", "daily", "slack", "syslog", 28 | "errorlog", "custom", "stack" 29 | 30 */ 31 32 'channels' => [ 33 34 /* ... */ 35 36 'ltsv' => [ 37 'driver' => 'monolog', 38 'handler' => \Monolog\Handler\StreamHandler::class, 39 'formatter' => \Hikaeme\Monolog\Formatter\LtsvFormatter::class, 40 'formatter_with' => [ 41 'dateFormat' => 'Y-m-d', 42 ], 43 ], 44 45 ], 46 47];

投稿2018/12/15 07:42

編集2018/12/15 07:51
mpyw

総合スコア5223

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chokochokochok

2018/12/17 00:16

回答ありがとうございます!ご提示いただいた内容でできました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問