【Swift4】Xcodeのデバックログにファイル名や関数名や行数をつける方法【Objective-C】【iOS11】
Xcodeのでバックログは開発者にとってとても貴重な情報源の一つですが、単なるprintやNSLogを使っているだけだと、デバックログを最大限に生かすことはできません。
ただ単に、記述したログを出すだけではなく、ログを出すプログラムが書かれたファイル名、関数名、行数が出力するように変更するだけで、プログラムの開発は飛躍的に向上させることができます。
今回はデバックログを最大限に活かせるようなデバックログのカスタム方法をご紹介します。
デバックログにファイル名や関数名や行数をつける
Objective-C
デバックログのカスタム方法
PrefixHeader.pchなどに記載するとどこでも使えるので便利です。
#ifdef DEBUG
#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define DLog(...)
#endif
デバックログの使用方法
DLog(@"test");
Swift4
デバックログのカスタム方法
import UIKit
class Debug: NSObject {
class func log(_ obj: Any?,
file: String = #file,
line: Int = #line,
function: String = #function
) {
#if DEBUG
var filename = file
if let match = filename.range(of: "[^/]*$", options: .regularExpression) {
filename = filename.substring(with: match)
}
if let obj = obj {
print("[File:\(filename)][Line:\(line)][Function:\(function)] : \(obj)")
} else {
print("[File:\(filename)][Line:\(line)][Function:\(function)]")
}
#endif
}
}
デバックログの使用方法
Debug.log("test")