কোডইগিনিটারে (পিএইচপি) লগ ইন করার পদ্ধতি কীভাবে করবেন


95

আমি পিএইচপি কোডইগিনিটারে লগ ইন করতে চাই। আমি কীভাবে ত্রুটি লগিং সক্ষম করব?

আমার কিছু প্রশ্ন আছে:

  1. ত্রুটি লগ করার জন্য সমস্ত পদক্ষেপগুলি কী কী?
  2. কীভাবে একটি ত্রুটি লগ ফাইল তৈরি করা হয়?
  3. লগ ফাইলে ত্রুটি বার্তাটি কীভাবে ঠেলাবেন (যখনই কোনও ত্রুটি দেখা দেয়)?
  4. আপনি কীভাবে কোনও ত্রুটি ইমেল ঠিকানায় ইমেল করবেন?

উত্তর:


183

কোডইগিনিটারে অন্তর্নির্মিত কিছু ত্রুটিযুক্ত লগ ফাংশন রয়েছে।

  • আপনার / অ্যাপ্লিকেশন / লগ ফোল্ডার লিখনযোগ্য করুন
  • আপনার অ্যাপ্লিকেশনগুলিতে
    $config['log_threshold'] = 1;
    আপনি কতটা বিশদ চান তার উপর নির্ভর করে / অ্যাপ্লিকেশন / কনফিগ / কনফিগ.এফপি সেট করুন বা একটি উচ্চতর নম্বর ব্যবহার করুন
  • ব্যবহার log_message('error', 'Some variable did not contain a value.');
  • একটি ইমেল প্রেরণ করতে আপনাকে মূল সিআই_এক্সেপশন শ্রেণীর পদ্ধতি প্রসারিত করতে হবে log_exceptions()। আপনি নিজে কি বা ব্যবহার করতে পারেন এইএখানে কোর প্রসারিত আরও তথ্য

Http://www.codeigniter.com/user_guide/general/erferences.html দেখুন


এর জন্য কি কোনও সুরক্ষা জড়িত আছে?
আকিল ফার্নান্দেস

এই ডেটা এমন একটি পিএইচপি ফাইলে ফেলা হয় যার ফাইলের নামটি ফর্ম্যাটে রয়েছে: লগ- [ওয়াইএমডি এইচ: আই: এস] বা আপনার কনফিগার ফাইলে সংজ্ঞায়িত লগ_ডেট_ফর্ম্যাট কী কনফিগারেশনে যা মান সেট করা আছে। যতক্ষণ না আপনি সংবেদনশীল ডেটা লগ / ডাম্প না পান, এটি বেশ নিরাপদ হওয়া উচিত। এই ফাইলটি ডিফল্ট অনুসারে একটি সূচক html পৃষ্ঠার তুলনায় তাই স্পষ্টতই উত্পন্ন পিএইচপি ফাইলগুলি সর্বজনীনভাবে অ্যাক্সেসযোগ্য হবে না - তবে আপনি কখনই জানতে পারবেন না। আপনি যদি ডিফল্ট অ্যাপ্লিকেশন / লগ ডিরেক্টরিটি পরিবর্তন করেন তবে এই সমস্ত সতর্কতার জায়গায় রয়েছে তা নিশ্চিত করুন।
ভিনসেন্ট এডওয়ার্ড গেদারিয়া বিনুয়া

7
আপনার / অ্যাপ্লিকেশন / লগগুলি ফোল্ডারটিকে লিখনযোগ্য করে
তুলুন

4
আমি যখন "$ config ['log_threshold'] = 1;" সেট করি তখন আমি আমার / অ্যাপ্লিকেশন / লগস ফোল্ডারে কোনও লগ পাইনি। যাইহোক, আমি যখন "$ config ['log_threshold'] = 3" সেট করি তখন একটি লগ ফাইল উপস্থিত হয়। আশাকরি এটা সাহায্য করবে. ধন্যবাদ! শান্তি।
মাসারপমবহায়

25

সার্ভারের ত্রুটি লগটিতে কেবল একটি লাইন রাখতে, পিএইচপি এর ত্রুটি_লগ () ফাংশনটি ব্যবহার করুন। তবে, সেই পদ্ধতিটি কোনও ইমেল প্রেরণ করবে না।

প্রথমত, একটি ত্রুটি ট্রিগার করতে:

trigger_error("Error message here", E_USER_ERROR);

ডিফল্টরূপে, এটি সার্ভারের ত্রুটি লগ ফাইলে যাবে। অ্যাপাচি এর জন্য ত্রুটি লগের নির্দেশিকা দেখুন । আপনার নিজস্ব লগ ফাইল সেট করতে:

ini_set('error_log', 'path/to/log/file');

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

ত্রুটিটি ইমেল করতে আপনাকে একটি কাস্টম ত্রুটি হ্যান্ডলার সেটআপ করতে হবে:

function mail_error($errno, $errstr, $errfile, $errline) {
  $message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
  error_log($message); // writes the error to the log file
  mail('you@yourdomain.com', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);

আরও তথ্যের জন্য দয়া করে প্রাসঙ্গিক পিএইচপি ডকুমেন্টেশন দেখুন।


3

এছাড়াও আপনি নিশ্চিত করুন যে আপনি কোডইনিটারকে কোনও কনফিগার ফাইলে আপনি যে ধরনের বার্তা চান তা লগ করার অনুমতি দিয়েছেন।

অর্থাত্ $config['log_threshold'] = [log_level ranges 0-4];


1

আরও অয়েল প্রশ্ন অংশ 4 এর সাথে সম্পর্কিত আপনি কীভাবে কোনও ত্রুটি ইমেল ঠিকানাতে ইমেল করেন? ত্রুটি_লগ ফাংশনটির ইমেল গন্তব্যও রয়েছে। http://php.net/manual/en/function.error-log.php

আগা, এখানে আমি একটি উদাহরণ পেয়েছি যা ব্যবহার দেখায়। ত্রুটি_লগ () ব্যবহার করে ইমেলের মাধ্যমে ত্রুটি বার্তা প্রেরণ করুন

error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);

0
In config.php add or edit the following lines to this:
------------------------------------------------------
$config['log_threshold'] = 4; // (1/2/3)
$config['log_path'] = '/home/path/to/application/logs/';

Run this command in the terminal:
----------------------------------
sudo chmod -R 777 /home/path/to/application/logs/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.