WP_DEBUG_LOG এর জন্য লগ ফাইলের অবস্থান পরিবর্তন করা সম্ভব?


18

আমি আমার বিকাশের পরিবেশে WP_DEBUG_LOG ব্যবহার করি এবং ডাব্লুপি.লগের ডাব্লুপি-কনটেন্ট ডিরেক্টরিতে থাকা নিয়ে কোনও সমস্যা নেই।

আমার যখন কোনও ডিবাগ করার দরকার হয় তখন কখনও কখনও আমি উত্পাদনে WP_DEBUG চালু করি এবং আমি এখনও লগটি ব্যবহার করতে চাই তবে এটি আমার ওয়েবের মূলের বাইরের কিছুতে পুনর্নির্দেশ করতে চাই। WP_DEBUG_LOG ব্যবহার করে এটি কি সম্ভব?

উত্তর:


19

দেখা যাচ্ছে যে সমস্ত WP_DEBUG_LOG যা করে তা হ'ল:

ini_set( 'log_errors', 1 );
ini_set( 'error_log', WP_CONTENT_DIR . '/debug.log' );

সুতরাং, আপনি যদি কোনও প্লাগইন বা থিমে WP_DEBUG_LOG এর জন্য লগের অবস্থানটি পরিবর্তন করতে চান তবে ওয়েবওয়ারের উত্তরটি সেরা। আপনি যদি কেবল এটির মধ্যে পরিবর্তন করতে চান তবে উপরের 2 টি লাইন দিয়ে wp-config.phpপ্রতিস্থাপন করতে define( 'WP_DEBUG_LOG', true );এবং লগ ফাইলটি যেখানেই চান সেখানে পরিবর্তন করতে পারেন।


কয়েক বছর পরে, এবং আমি ওয়ার্ডপ্রেস কনটেন্ট ফোল্ডারে না থাকলে ফাইলটি ত্রুটিগুলির সাথে পপুলেশন করার মতো মনে হচ্ছে না।
মাইক Kormendy

@ মাইককর্মেডি - এটি একটি ডিরেক্টরি অনুমতিগুলির সমস্যা হতে পারে। আপনি যেখানে ফাইলটি লিখতে চান সেই অবস্থানটি অবশ্যই পিএইচপি রানারের প্রক্রিয়া মালিক হিসাবে ব্যবহারকারীর দ্বারা লিখিত হতে হবে। সহজ কথায়, নিশ্চিত করুন যে নতুন ফাইলের গন্তব্যটিতে বর্তমানে ডাব্লুপি-কনটেন্ট ফোল্ডারের মতো একই অনুমতি রয়েছে।
মাইকেল Teter

5

দেখে মনে হচ্ছে এই পরিবর্তনগুলি ডাব্লুপি সংস্করণ 5.1 এবং তারপরের উপরের থেকে আর সত্য নয় https://make.wordpress.org/core/2019/01/23/miscellaneous-developer-focused-changes-in-5-1 /

আপনি এখন WP_DEBUG_LOGএকটি পথ হিসাবে সংজ্ঞা দিতে পারেন যদি আপনি wp-content/debug.logউদাহরণস্বরূপ ডিফল্টটিকে ওভাররাইড করতে চান :

define( 'WP_DEBUG_LOG', 'wp-content/uploads/debug.log' );

4

হ্যাঁ, আপনি যদি প্লাগইন বা থিমের ফাংশন.এফপিতে কিছু কোড যুক্ত করেন তবে:

if (defined('WP_DEBUG_LOG') && WP_DEBUG_LOG) {
    ini_set( 'error_log', WP_CONTENT_DIR . '/debug.txt' );
}

সম্পাদনা করুন: অন্য কেউ আমাকে এই কাজটি করার প্রয়োজনের সাথেই উপস্থাপন করেছেন, তাই আমি সম্পাদনা করতে পারে এমন একটি সাধারণ প্লাগইনে কিছু কোড ফেলেছি; যদি কেউ এটি চায় তবে এটি একটি টুকরো হিসাবে উপলব্ধ ।


আমি এটি আমার wp-config.php ফাইলে যুক্ত করার চেষ্টা করেছি এবং এটি কার্যকর হয় না। লগ ফাইলটি সংজ্ঞায়িত করার জন্য ডাব্লুপি_ডিবিউজি_এলজি ব্যবহার করা কোডটির আসল জায়গার চেয়ে সম্ভবত সম্ভবত ডাব্লুপি-কনফিগারেশন.পিপি লোড হয়েছে বলেই কি?
jjaton

1
আমি এটি একটি মিউ-প্লাগইনটিতে যুক্ত করে কাজ করতে সক্ষম হয়েছি। আমার কি কেবল ডাব্লুপি-কনফিগারেশনে এই পরিবর্তনটি করার আছে? আমি ধরে নিচ্ছি যে আমাকে কেবল WP_DEBUG_LOG টি মিথ্যাতে সেট করতে হবে এবং এটি নিজে যা করে তা প্রতিস্থাপন করতে হবে?
jjeaton

1
আপনি কোডটি একটি প্লাগইন বা থিমে রাখতে পারলে এটি ভাল কাজ করে, ধন্যবাদ!
jjeaton

হ্যাঁ, কেবল একটি সাধারণ প্লাগইনে এটি ফেলে দিন। কোডেক্সে একটি প্লাগইন লেখা দেখুন ।
ওয়েবওয়্যার

1

এই প্রশ্নের শেষ উত্তর পোস্ট হওয়ার পরে ওয়ার্ডপ্রেস কোডটি পরিবর্তিত হয়েছে বলে মনে হচ্ছে। এই ধ্রুবকগুলির সাথে সম্পর্কিত বর্তমান ডাব্লুপি_দেবগ_মোড () ফাংশনটিতে ডাব্লুপিডিডিইউইউজি_এলজি সত্য বা 1 এর সাথে সমান হয় কিনা এর জন্য একটি পরীক্ষা অন্তর্ভুক্ত রয়েছে - অন্য ক্ষেত্রে যেমন বর্ণিত হয়েছে তেমন আচরণে এটি আচরণ করে।

তবে আপনি সেই ধ্রুবকে একটি স্ট্রিংয়েও সেট করতে পারেন - আপনার পছন্দসই ফাইল পাথ - এবং লগটি সেখানে আউটপুট হবে। উদাহরণস্বরূপ, আপনি এটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য ওয়েব সামগ্রীর জন্য আপনার ডিরেক্টরিগুলির বাইরের পথে সেট করতে পারেন। এটি কাজ করতে আপনাকে ফাইলের অনুমতি নিয়ে খেলতে হতে পারে।

আমি এই উত্তরটির সন্ধান করতে এসেছি কারণ ওয়ার্ডফেন্স সুরক্ষা প্লাগইনটি আমার ডিবাগ লগ / ডাব্লুপি-কনটেন্ট / এ সম্ভাব্য অ্যাক্সেসযোগ্য হওয়ার বিষয়ে অভিযোগ করছে

if ( in_array( strtolower( (string) WP_DEBUG_LOG ), array( 'true', '1' ), true ) ) { $log_path = WP_CONTENT_DIR . '/debug.log'; } elseif ( is_string( WP_DEBUG_LOG ) ) { $log_path = WP_DEBUG_LOG; } else { $log_path = false; }


0

আফাইক, আপনি ডিফল্ট ডিবাগ ফাইলের জন্য অবস্থানটি পরিবর্তন করতে পারবেন না। আপনি যা পরিবর্তন করতে পারবেন তা হ'ল এমইউ ত্রুটি লগের অবস্থান এবং পিএইচপি ত্রুটি লগ ফাইলের অবস্থান।

$ds = DIRECTORY_SEPARATOR;
# DEBUG
define( 'WP_DEBUG',               true );
// file: ~/WP_CONTENT_DIR/debug.log
define( 'WP_DEBUG_LOG',           true );
define( 'WP_DEBUG_DISPLAY',       true );
define( 'SAVEQUERIES',            true );
# DEBUG: MU
define( 'DIEONDBERROR',           true );
define( 'ERRORLOGFILE',           WP_CONTENT_DIR.$ds.'logs'.$ds.'mu_error.log' );

@ini_set( 'log_errors',           'On' );
# PHP Error log location
@ini_set( 'error_log',            WP_CONTENT_DIR.$ds.'logs'.$ds.'php_error.log' );

সুতরাং আমার ডাব্লুপি-কনটেন্ট ডিরেক্টরিতে ডিবাগ.লগ ফাইলটি কখনই তৈরি হয় না তা নিশ্চিত করার জন্য আমার WP_DEBUG_LOG বন্ধ করা দরকার?
jjeaton

1
আপনি এই দিন এবং সময়ের জন্য বেশ কিছু প্রশ্ন জিজ্ঞাসা করছেন :) আমি এখন সেগুলির উত্তর দেওয়ার জন্য মস্তিষ্কের অবস্থার মধ্যে নেই। কাল ফিরে এসে আড্ডায় ঝাঁপ দাও।
কায়সার

0

সময় পরিবর্তন হয় এবং তাই প্রযুক্তিগত প্রশ্নের সঠিক উত্তর দেয়।

২০১৮ সালের শেষের দিকের বর্তমান উত্তরটি সহজ। Wp-config.php- এ WP_DEBUG_LOG "ধ্রুবক" সংজ্ঞায়িত করার সময় আপনি এখন এমন একটি পথ প্রদান করতে পারেন যেখানে আপনি ফাইলটি লিখিতভাবে চান।

define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );

দেখুন ওয়ার্ডপ্রেস সহায়তা নথিপত্রের

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.