#はじめに
Android Studio / Xcodeでのログ出力がちょっとした工夫で便利になるので紹介いたします。
具体的には
- ログにクラス名、関数名、タグ等を自動で挿入して出力する
- コード記述を簡単にする(補完してくれる)
ことを目指します。
#環境
- macOS 10.15.6
- Android Studio 3.6.3
- Xcode 12.2
#Android Studio
環境設定からLive Templatesを開き、右側の+ボタンからAndroidLog
の中に新たにテンプレートを定義します。
Abbreviation
にはテンプレートを呼び出す文字列、Description
にはテンプレートの説明、Template Text
には実際に出力される文字列が入ります。
その下のDefine
からどのタイミングでこのLive Templateを有効にするかを設定します。とりあえずJava -> Statement
だけチェックしておけば大丈夫でしょう。
さて、Template Text
に入力する内容ですが、$で囲むことで変数を定義できます。定義した変数はEdit variables
から編集可能なので、以下のようにクラス名等が自動で挿入されるようにします。
以上でld
とだけ入力すればクラス名や関数名等が挿入された状態でLog.d()
を記述できるようになりました!
#Xcode
まずログ出力用のクラスを定義して、クラス名等が自動で挿入されるようにします。
変数file
は/Users/[username]/Desktop/hoge/huga/ViewController.swift
のような形になるのでファイル名だけを切り取っています。
class MyUtility {
class func logD(tag: String, file: String, function: String, log: String) {
NSLog("D/\(tag): \(URL(string: file)!.deletingPathExtension().lastPathComponent)#\(function): \(log)")
}
}
次に入力を自動で行うためにCode Snippetを使います。
ウィンドウ右上の+ボタンからSnippets一覧を開き、以下のように設定します。
#file
や#function
にはファイル名や関数名が自動で入るので、これを先程のログ出力用の関数に代入しています。
TAG
やLog
などの可変部分は<#TAG#>
としてプレースホルダ化すると良いですね。
これでAndroid Studioと同様にld
とだけ入力すればクラス名や関数名等が挿入されたログの出力を記述できるようになりました!
#参考リンク