TL; ড
NSLog( @"ERROR %@ METHOD %s:%d ", @"DescriptionGoesHere", __func__, __LINE__ );
বিস্তারিত
অ্যাপলের একটি প্রযুক্তিগত প্রশ্নোত্তর পৃষ্ঠা রয়েছে: QA1669 - আমি আমার লগিংয়ের বিবৃতিগুলিতে প্রাসঙ্গিক তথ্য - যেমন বর্তমান পদ্ধতি বা লাইন নম্বর - যুক্ত করতে পারি?
লগিংয়ে সহায়তা করার জন্য:
- সি প্রিপ্রসেসর কয়েকটি ম্যাক্রোগুলি সরবরাহ করে ।
- উদ্দেশ্য-সি এক্সপ্রেশন (পদ্ধতি) সরবরাহ করে।
- বর্তমান পদ্ধতির নির্বাচকের জন্য অন্তর্নিহিত যুক্তিটি পাস করুন :
_cmd
অন্যান্য উত্তরগুলি সূচিত হিসাবে, কেবলমাত্র বর্তমান পদ্ধতির নাম পেতে কল করুন:
NSStringFromSelector(_cmd)
বর্তমান পদ্ধতির নাম এবং বর্তমান লাইন নম্বর পেতে, এই দুটি ম্যাক্রো __func__
এবং __LINE__
এখানে দেখা হিসাবে ব্যবহার করুন:
NSLog(@"%s:%d someObject=%@", __func__, __LINE__, someObject);
আর একটি উদাহরণ… কোড স্নিপেটস আমি এক্সকোডের কোড স্নিপেট লাইব্রেরিতে রাখি:
NSLog( @"ERROR %@ METHOD %s:%d ", @"DescriptionGoesHere", __func__, __LINE__ );
… এবং ত্রুটির পরিবর্তে ট্র্যাক…
NSLog( @"TRACE %@ METHOD %s:%d ", @"DescriptionGoesHere", __func__, __LINE__ );
… এবং একটি মান ( [rows count]
)) পাস করে একটি নরম কোডেড বিবরণ ব্যবহার করে আর একটি দীর্ঘ …
NSLog( @"TRACE %@ METHOD %s:%d.", [NSString stringWithFormat:@"'Table of Contents.txt' file's count of Linefeed-delimited rows: %u.", [rows count]] , __func__, __LINE__ );
লগিংয়ের জন্য প্রিপ্রসেসর ম্যাক্রো
ম্যাক্রোর উভয় পাশের জুড়ে আন্ডারস্কোর অক্ষরের এক জোড়া ব্যবহারের বিষয়টি লক্ষ্য করুন ।
| ম্যাক্রো | ফর্ম্যাট | বিবরণ
__func__% s বর্তমান ফাংশন স্বাক্ষর
__LINE__% d বর্তমান লাইন নম্বর
__FILE__% s উত্স ফাইলের সম্পূর্ণ পথ
__PRETTY_FUNCTION__% s __func__ এর মত, তবে ভার্জোজ অন্তর্ভুক্ত
সি ++ কোডে তথ্য টাইপ করুন।
লগিং জন্য অভিব্যক্তি
| অভিব্যক্তি | ফর্ম্যাট | বিবরণ
এনএসএসস্ট্রিংফ্রোমস্লেক (_সিএমডি)% @ বর্তমান নির্বাচকের নাম
NSStringFromClass ([স্ব শ্রেণি])% @ বর্তমান বস্তুর শ্রেণীর নাম
[[এনএসএসটিং% @ উত্স কোড ফাইলের নাম
stringWithUTF8String: __ FILE__]
lastPathComponent]
[এনএসটি স্ট্রেড কলস্ট্যাকসাইমবলস]% @ এনএসএরে স্ট্যাক ট্রেস
লগিং ফ্রেমওয়ার্ক
কিছু লগিং ফ্রেমওয়ার্ক বর্তমান পদ্ধতি বা লাইন নম্বর পাশাপাশি পেতে সহায়তা করতে পারে। আমি নিশ্চিত নই যেহেতু আমি জাভাতে একটি দুর্দান্ত লগিং কাঠামো ব্যবহার করেছি ( এসএলএফ 4 জে + লগব্যাক ) তবে কোকো নয়।
বিভিন্ন কোকো লগিং ফ্রেমওয়ার্কের লিঙ্কগুলির জন্য এই প্রশ্নটি দেখুন ।
নির্বাচক নাম
আপনার যদি সিলেক্টর ভেরিয়েবল (একটি এসইএল ) থাকে তবে এই কোডেক ব্লগ পোস্টের দ্বারা বর্ণিত হিসাবে আপনি দুটি পদ্ধতিতে এর পদ্ধতির নাম ("বার্তা") মুদ্রণ করতে পারেন :
- এনএসএস স্ট্রিংফ্র্যামটিলেক্টরে অবজেক্টিভ-সি কল ব্যবহার করে :
NSLog(@"%@", NSStringFromSelector(selector) );
- সোজা সি ব্যবহার করে:
NSLog(@"%s", selector );
2013-07-19 হিসাবে লিঙ্কযুক্ত অ্যাপল ডক পৃষ্ঠা থেকে এই তথ্য আঁকা। এই পৃষ্ঠাটি সর্বশেষে 2011-10-04 আপডেট করা হয়েছিল updated
iPhone
প্রকল্পে, আমি আসলে এটি ম্যানুয়ালি করেছি। এর উত্তর দেখতে ভাল লাগবে।