투케이2K

138. (swift5/xcode) #file, #line, #function 현재 수행 중인 로그 정보 클래스 명칭 및 메소드 명칭, 코드 라인 확인 - Log Details 본문

Swift

138. (swift5/xcode) #file, #line, #function 현재 수행 중인 로그 정보 클래스 명칭 및 메소드 명칭, 코드 라인 확인 - Log Details

투케이2K 2023. 10. 2. 12:48

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // MARK: - [SEARCH FAST] : [코드] : [로그 정보 출력]
    // -----------------------------------------------------------------------------------------
    // S_Log._D_(description: "이름 정보", data: [String(describing: "투케이")])
    // -----------------------------------------------------------------------------------------
    static func _D_(filename: String = #file, _ line: Int = #line, _ funcname: String = #function, description: String?, data:Array<String>?){
        
        if S_FinalFlag.LOG_SHOW_FLAG == true { // [디버그 환경 및 개발 모드일 경우 만]
            
            
            // [클래스 명칭 확인]
            var className = ""
            className = className + String(describing: "\(filename)")
            if className.contains("/") == true {
                let arr = className.split(separator: "/")
                className = String(describing: "\(arr[arr.count-1])")
            }
            
            className = className + " :: " + String(describing: "\(funcname)")
            className = className + " :: " + String(describing: "\(line)")
            
            
            // [현재 날짜 및 시간 확인]
            let nowDate = Date() // 현재의 Date 날짜 및 시간
            let dateFormatter = DateFormatter() // Date 포맷 객체 선언
                    
            dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" // Date 포맷 타입 지정
            let date_string = dateFormatter.string(from: nowDate) // 포맷된 형식 문자열로 반환

            
            print("")
            print("")
            print("================================================================")
            print("LOG :: CLASS PLACE :: \(className)")
            print("-------------------------------------------------")
            print("LOG :: NOW TIME :: \(date_string)")
            
            // [설명 출력]
            if description != nil && String(describing:description) != ""
                && String(describing:description) != "null" && String(describing:description) != "nil"
                && description?.isEmpty == false && description?.count ?? 0 > 0{
                print("-------------------------------------------------")
                print("LOG :: DESCRIPTION :: \(String(describing:description ?? ""))")
                
            }
            
            // [데이터 출력]
            if data != nil && data?.isEmpty == false && data?.count ?? 0 > 0{
                
                for i in stride(from: 0, through: data!.count-1, by: 1) {
                    print("-------------------------------------------------")
                    print("LOG :: \(String(describing:data![i]))")
                }
                
            }
            
            print("================================================================")
            print("")
            print("")
        }
    }
 

[결과 출력]

 

================================================================
LOG :: CLASS PLACE :: AppDelegate.swift :: application(_:didFinishLaunchingWithOptions:) :: 70
-------------------------------------------------
LOG :: NOW TIME :: 2023-10-02 12:40:37
-------------------------------------------------
LOG :: DESCRIPTION :: 앱 프로세스 완료 및 앱 실행 실시
-------------------------------------------------
LOG :: 빌드 타입 구분
-------------------------------------------------
LOG :: 프리퍼런스 데이터 초기화 수행
================================================================

 

반응형
Comments