투케이2K

821. (Android/Java) [간단 소스] 웹뷰 Webview onConsoleMessage 콘솔 메시지에서 Error 에러 타입 레벨 확인 방법 본문

Android

821. (Android/Java) [간단 소스] 웹뷰 Webview onConsoleMessage 콘솔 메시지에서 Error 에러 타입 레벨 확인 방법

투케이2K 2024. 7. 23. 19:21
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

                // TODO [웹 브라우저 콘솔 로그 확인]
                @Override
                public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
                    // ---------------------------------------------------
                    /*
                    S_Log._E_(S_FinalData.LOG_Message_Res, new String[]{
                            "URL :: " + String.valueOf(main_webview.getUrl()),
                            "message [1] :: " + String.valueOf(consoleMessage.message()),
                            "message [2] :: " + String.valueOf(consoleMessage.toString()),
                            "sourceId :: " + String.valueOf(consoleMessage.sourceId())
                    });
                    // */
                    // ---------------------------------------------------
                    // TODO [에러 발생 로그 인 경우] : 네이티브 파일 쌓기
                    try {
                        ConsoleMessage.MessageLevel lvl = consoleMessage.messageLevel();

                        if (lvl == ConsoleMessage.MessageLevel.ERROR
                                || String.valueOf(consoleMessage.message()).replaceAll(" ", "").toLowerCase().startsWith("error") == true
                                || String.valueOf(consoleMessage.message()).replaceAll(" ", "").toLowerCase().startsWith("fail") == true
                                || String.valueOf(consoleMessage.message()).replaceAll(" ", "").toLowerCase().startsWith("exception") == true
                                || String.valueOf(consoleMessage.message()).replaceAll(" ", "").toLowerCase().startsWith("bug") == true) {

                            S_Log._fileSave_(2, ACTIVITY_NAME + " : onConsoleMessage : MessageLevel.ERROR : 웹 에러 발생 로그 저장", new String[]{
                                    "Web_Url :: " + String.valueOf(main_webview.getUrl()),
                                    "Web_SourceId :: " + String.valueOf(consoleMessage.sourceId()),
                                    "Web_LineNumber :: " + String.valueOf(consoleMessage.lineNumber()),
                                    "Error_Message :: " + String.valueOf(consoleMessage.message())
                            });
                        }

                    }
                    catch (Exception e){
                        e.printStackTrace();
                    }
                    // ---------------------------------------------------
                    // TODO [chromium 크롬 자체 로그 출력] : 크롬 로그 검색 : [INFO:CONSOLE(533)]
                    return super.onConsoleMessage(consoleMessage);
                    // ---------------------------------------------------
                }
 

[결과 출력]

 

E///===========//: ================================================
I/: [LOG :: CLASS PLACE :: C_CommonWebview$2.onConsoleMessage(C_CommonWebview.java:529)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-07-23 12:13:40 화요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: C_CommonWebview : onConsoleMessage : MessageLevel.ERROR : 웹 에러 발생 로그 저장]
I/: ----------------------------------------------------
I/: [LOG :: Web_Url :: file:///android_asset/commonWebTest.html]
I/: ----------------------------------------------------
I/: [LOG :: Web_SourceId :: file:///android_asset/commonWebTest.html]
I/: ----------------------------------------------------
I/: [LOG :: Web_LineNumber :: 731]
I/: ----------------------------------------------------
I/: [LOG :: Error_Message :: catch : error]
E///===========//: ================================================
I/:    
I/:   
I/:   
I/chromium: [INFO:CONSOLE(731)] "catch : error", source: file:///android_asset/commonWebTest.html (731)
I/chromium: [INFO:CONSOLE(736)] "finally : -1", source: file:///android_asset/commonWebTest.html (736)
V/FA: Inactivity, disconnecting from the service

 

반응형
Comments