WEBアプリ開発に関する技術を綴るブログ

php,js,apache,mysql,laravel,fuelphpあたりの技術

各エラーログ 確認方法

ログ:パソコンの使用履歴のこと

ログ管理には大きく2種類ある

(1)クライアント操作ログ

従業員のパソコンで行われたほぼ全ての内容がログとして保管されます。 パソコンからUSBなどの記録媒体にデータを写しただけでもログとして残る。

(2)サーバーアクセスログ

従業員のアカウントからサーバーにアクセスがあった場合のみログとして残ります。

主なログの種類

■操作ログ

ユーザの操作ログを残す、最も一般的なログの1つです。 情報漏えいが起きた際の調査に役立ちます。

■認証ログ

いつ、誰がPCからシステムにログインしたかを残すログです。 ポイントとなるのはエラー回数です。 エラー回数のしきい値を設定して、越えた社員を要注意とします。

■イベントログ

異常イベント、ログオン/ログオフ、ファイルアクセスなどのセキュリティ情報が登録されます。 わかりづらいログの1つで、専用の翻訳ソフトが用意されていることがあります。

■通信ログ

通信中にサーバとやり取りした内容を記録するために使用されるログです。 通信エラーの内容を取得することで、サービスの改善に役立ちます。

■印刷ログ

印刷したドキュメントのプリンター名、タイトル、印刷枚数、印刷対象のファイルを記録します。 情報漏えいの際の事後調査に役立ちます。

■設定変更

権限を持つ担当者が設定を変更した際に残されるログです。 内部犯行が発生した際の資料となります

Apache

$ httpd -tで構文チェック AH00112: Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist AH00526: Syntax error on line 29 of /private/etc/apache2/extra/httpd-vhosts.conf: Invalid command 'CustomLog', perhaps misspelled or defined by a module not included in the server configuration

アクセスログ

通常、「ログ」といえばこのアクセスログを意味する。webブラウザ⇄サーバ(Apache)毎に記録。

CustomLog "logs/access_log" common

この相対パスは、「ServerRoot」という項目の相対パスで表されます。

「ServerRoot」の設定もhttpd.confファイル内に記述してあります。

★★★★8/28 /Applications/XAMPP/xamppfiles/logs/access_log にあった。

エラーログ

エラーログを記録するファイルは、Apacheの設定ファイル内の”ErrorLog”ディレクティブで指定されています。

tanaka:~ tanakaakio$ apachectl -V

-D DEFAULT_ERRORLOG="logs/error_log"

ErrorLog "logs/error_log" (httpd.conf)

★★★★ /Applications/XAMPP/xamppfiles/logs/error_log にあった。

設定ファイル

/Applications/XAMPP/xamppfiles/etc/httpd.conf

fuel

アプリケーションログ

ログファイルは、 config.php 内の属性 'log_path' で指定されたフォルダに配置されます。

また、パラメータとして 'log_threshold' 、 'log_date_format' を設定することができます。(FuelPHP公式より)

★log_threshold

FuelPHPには、4種類(error, warning, debug, info)のログレベルがある。

Fuel::L_NONE, Fuel::L_ERROR, Fuel::L_WARNING, Fuel::L_DEBUG, Fuel::L_INFO or Fuel::L_ALL

*記述方法

Log::error("errorログ");

Log::warning("warningログ");

Log::debug("debugログ");

Log::info('infoログ');

*出力レベルの変更

'log_threshold' => Fuel::L_ALL,

★log_path

ログファイルの配置場所 (フォルダが書き込み可能である必要があります) 。

8/28 /Applications/XAMPP/xamppfiles/htdocs/fuelphp-1.7/fuel/app/logsの中に.gitkeepというファイルしか入っていない。 8/28 'log_threshold' => Fuel::L_WARNING, 'log_path' => APPPATH.'logs/', 'log_date_format' => 'Y-m-d H:i:s', に設定する(*を外した)

log_fileで指定がない場合、"./YYYY/MM/DD.log" という形式で 1日 1つのログファイルが生成されます。 (デフォルトはnull)

8/29 'log_path' => APPPATH.'logs/',の場所を探す

tail -f /app/fuel/app/logs/■■■■.php にあるはず

設定ファイル

アプリケーションの基本設定は app/config/config.php で設定されています。

Applications/XAMPP/xamppfiles/htdocs/fuelphp-1.7/fuel/app/config/config.php

以下設定に関するリンク

設定 - 概要 - FuelPHP ドキュメント

mysql

errorログ

サーバーから出力されるエラーメッセージを記録する

SlowQueryログ

処理に時間のかかったクエリを記録する

設定ファイル

/Applications/XAMPP/xamppfiles/etc/my.cnf

出力先の設定!(my.cnf)

*エラーログ (my.cnf) log-error=/var/log/mysqld.log # ファイルパス

*slowqueryログ(my.cnf)

slow_query_log # slow queryログの有効化

slow_query_log_file=/usr/local/mysql/data/slow.log # ファイルパス

long_query_time=5 # 5秒以上処理に時間がかかったクエリを記録

log-queries-not-using-indexes # インデックスが使用されていないクエリをログに出力

8/29 ★★★★/private/var/log/mysql/mysqld.logにある。

8/29 tanaka:~ tanakaakio$ mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 119 Server version: 10.1.34-MariaDB Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show variables like 'slow%'; +---------------------+-----------------+ | Variable_name | Value | +---------------------+-----------------+ | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | tanaka-slow.log | +---------------------+-----------------+ 3 rows in set (0.01 sec)

slow_query_logはoffになっている。

MariaDB [(none)]> show variables like 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)

long_query_timeを超えるクエリがスロークエリとして出力される。

8/29 my.cnfファイルに、 [mysqld] slow_query_log=ON long_query_time = 5 slow_query_log_file = /tmp/mysql-slow.sql を設定。

MariaDB [(none)]> show variables like 'slow%'; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 3 Current database: NONE

+---------------------+---------------------+ | Variable_name | Value | +---------------------+---------------------+ | slow_launch_time | 2 | | slow_query_log | ON | | slow_query_log_file | /tmp/mysql-slow.sql | +---------------------+---------------------+ 3 rows in set (0.00 sec)

MariaDB [(none)]> show variables like 'long%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 5.000000 | +-----------------+----------+ 1 row in set (0.00 sec)

★★★★/private/tmp/mysql-slow.sql/mysql-slow.sqlにある

●MySQL5.1系以上 ① my.cnfにて下記のパラメータを設定してください。 ※my.cnfに記載しただけでは反映されません。MySQL再起動もしくはset globalでの設定が必要です。

slow_query_log : スロークエリログの有効/無効を設定 0(または OFF)で無効、1(または ON)が有効 slow_query_log_file : ログ出力先ファイル名 long_query_time : 指定した秒数以上かかったクエリを記録(default 10秒) ※MySQL5.1からは1秒未満の設定可能

XAMPPでは確かMysqlのログ出力設定が初期状態でされてなかった気がします。 設定ファイルにログ出力設定がされているか確認してください。

もし設定が無ければ、出力されていないから読み込めないだけだと思います。 (stackoverflowの回答者)

エラーログ の設定

エラーログの設定で必要になるディレクティブは、 「ErrorLog」と「LogLevel」の2つである。 ErrorLogディレクティブはログファイルの位置と名称を指定し、 LogLevelディレクティブは記録するログのレベルを指定する。

LogLevel noticeと指定すると、notice以上のものが記録されることになる。