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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

Q&A

5回答

1653閲覧

WordPressでエラーログを独自に出力したいです

mossbarger

総合スコア26

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

0グッド

2クリップ

投稿2020/06/22 09:38

前提・実現したいこと

WordPressでWEBサイトを作成しており、PHPのエラーログを出力したいです。

発生している問題・エラーメッセージ

エラーログの出力方法がわかりません。

該当のソースコード

こちらのサイトを参考に、wp-config.phpを以下のように変更しました。
この変更でwp_errors.logにエラーログが出力されるつもりだったのですが…。

define( 'WP_DEBUG', false );

↓変更

php

1define( 'WP_DEBUG', true ); // true に変更 2define( 'WP_DEBUG_LOG', '/home/xs542155/xs542155.xsrv.jp/public_html/themes/test/wp_errors.log' ); // 追加

試したこと

出力先を画面にしてみようとも思いwp-config.phpを次のように変更しましたが、画面への出力もできませんでした。

define(' WP_DEBUG_DISPLAY', true ); // さらにこれを追加して画面上に出力されるかと思ったのですが、変化ありませんでした define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', '/home/xs542155/xs542155.xsrv.jp/public_html/themes/test/wp_errors.log' );

先のwp-config.phpと、出力先であるwp_errors.logのディレクトリは、次の階層にあることを確認しました。

xs542155.xsrv.jp/  ├ public_html/  ├ wp-config.php  ├ wp-content/  │ └ themes/  │ └ test/  │     └ wp_errors.log

エラーログの出力内容としては、header.phpに次のようにしています。

php

1error_log('この文をwp_errors.logに出力したい');

補足情報(FW/ツールのバージョンなど)

サーバーはXサーバーさんで、X10プランです。
WordPressはインストールしたばかりで特に変更などしておらず、WordPress 5.4 です。

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

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

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

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

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

guest

回答5

0

こんにちは。もう回答は得られましたでしょうか?

WP_DEBUG_LOG のファイル指定は「フルパス」というのはもう知っていらっしゃるかと思います。
フルパスの起点がどこであるかを把握するのが解決の糸口のような気がします。

まず、define('WP_DEBUG_LOG', '/wp_errors.log'); とした場合は、どこにログが出力されますか?
出力されたその場所から順に辿って最終的にログを設置したい場所を指定していく方法はもう試されましたか?

ログが出力されない理由としてあと考えられるのは…
・ログの出力先が書き込み可能になっていない。
・出力先のフォルダが存在していない。(出力先フォルダはあらかじめ作成しておく必要があります)
といったところでしょうか?

投稿2020/11/05 02:35

編集2020/11/05 02:40
ayakyon

総合スコア19

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

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

ayakyon

2020/11/05 04:52

ごめんなさい。追加コメントします。 define('WP_DEBUG_LOG', '/wp_errors.log'); を実行しちゃうととんでもないところにログを書き出しちゃう可能性があります。 ローカル環境での実験ならその方法もアリですが、本番環境ではヤバいですね。ごめんなさい。 というわけで。 まずはお使いのサーバーでのフルパス取得を試みるところから始めてみてはどうでしょう? echo "フルパス:". __FILE__; もしくは一旦 define('WP_DEBUG_LOG', true); で debug.log をデフォルトの出力先に指定してerror_log( "フルパス:". __FILE__ ); を実行してみる。 そうすれば、サーバーでのフルパスが得られますから、それを参考にしてログファイル出力先を指定してやればいいんです。 実際。自分もローカル環境と本番環境でログファイル出力先を指定して運用中ですが、出力先さえ間違えなければちゃんと指定した場所にログファイルを書き出してくれます。
guest

0

WP_DEBUG_LOGの値はtrueかfalseでは?

php

1define( 'WP_DEBUG_LOG', true );

WordPress でのデバッグ

投稿2020/06/22 11:40

dousojin

総合スコア754

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

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

mossbarger

2020/06/22 11:46

ありがとうございます。 WP_DEBUG_LOGの第二引数は >5.1ではこの仕様をそのままにエラーログファイルのフルパス名が指定できるようになった。 とのことみたいです。 (ソース → https://elearn.jp/wpman/column/c20190215_01.html)
mossbarger

2020/06/22 12:23

ありがとうございます。そちらのディレクトリ探したのですが見つからなかったです。Xサーバーの管理画面からは問題なく見れるのですが、エスケープや改行などが見にくくてたまらず、自分で任意のファイルに出せないものかと取り組んでいるところでございます。
guest

0

通常の記載と出力先
####wp-config.php

if ( WP_DEBUG ) {
// debug.log ファイルに記録 これでデフォルトでwp-content配下に出力されます。
define( 'WP_DEBUG_LOG', true );
// ブラウザ上に表示する
define( 'WP_DEBUG_DISPLAY', true );
// ブラウザ上に表示しない
@ini_set( 'display_errors',0 );
}

イメージ説明
X-serverだとドメインがpublic_htmlに割り振られますので、そこからのpathを記載すれば良いと思います。
公式サイト資料
https://ja.wordpress.org/support/article/debugging-in-wordpress/

投稿2020/08/06 07:24

happyteethago

総合スコア18

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

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

0

フォルダの権限はいかがでしょうか?

test/ フォルダに書き込み権限がないとか。

Xサーバー - パーミッション

投稿2020/07/02 03:49

bracket_i

総合スコア193

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

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

0

public_html/themes/test/wp_errors.log
ではなくwp-content/themes/test/wp_errors.log
ではありませんか?

投稿2020/06/22 10:29

meli

総合スコア312

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

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

mossbarger

2020/06/22 10:41

ありがとうございます。そちらでも出力できませんでした。 やはりディレクトリが怪しいでしょうか。 どこかに「エラーログの出力先ディレクトリが間違っている」というエラーが出てればいいのですけどw
meli

2020/06/22 10:57

相対パスではいかがでしたか? wp-content/themes/test/wp_errors.logとか…
mossbarger

2020/06/22 11:16

ありがとうございます。以下3つとも出力なしです… define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', '/home/xs542155/xs542155.xsrv.jp/wp-content/themes/test/wp_errors.log' ); define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', 'wp-content/themes/test/wp_errors.log' ); define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', '/wp-content/themes/test/wp_errors.log' );
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問