呼び出し元のメソッドの名前を吐き出す、再利用可能なロギング メソッドまたは関数が必要です。例:
- (void)exampleMethod {
CustomLog(); //Outputs "exampleMethod"
}
呼び出し元のメソッドの名前を吐き出す、再利用可能なロギング メソッドまたは関数が必要です。例:
- (void)exampleMethod {
CustomLog(); //Outputs "exampleMethod"
}
関数は呼び出し環境を知りません (少なくとも有用な方法ではありません)。唯一の方法は、代わりにマクロを使用することです。マクロ内では、レシーバーと現在のセレクターを保持するself
と引数、および人間が判読できるメソッド名を C 文字列として含むマクロにアクセスできます。_cmd
__PRETTY_FUNCTION__
メソッド名と行番号を出力し、条件付きでNSLogを無効にする方法を参照してください。この回答のインスピレーションとその他の便利なNSLogのヒント。これが私が望んでいたことです:
//place in PCH file
#define ILog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
//use in any file in your project
ILog(@"test");// outputs -[AppDelegate applicationDidFinishLaunching:] [Line 38] test