Android Studio/Xcode의 Log를 편리하게 만들기

소개



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 와 같은 형태가 되므로 파일명만을 잘라내고 있습니다.

    MyUtility.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 라고만 입력하면 클래스명이나 함수명 등이 삽입된 로그의 출력을 기술할 수 있게 되었습니다!

    참고 링크


  • AndroidStudio에서 코드 스니펫(LiveTemplates) 사용
  • IntelliJ IDEA - 라이브 템플릿 변수
  • 【Swift】 URL로 경로를 다룰 때 편리한 속성과 메서드
  • 코드 템플릿을 즉시 배포할 수 있는 Code Snippet과 Live Template의 설정·사용·공유 방법
  • Swift로 클래스명이나 함수명 등을 로그 출력한다
  • 좋은 웹페이지 즐겨찾기