---
title: "Effective Log Search & Analytics 2.0 FAQ"
slug: "elsa2-sdk-faq"
updated: 2026-09-17T09:07:51Z
published: 2026-09-17T09:07:51Z
canonical: "guide.ncloud-docs.com/elsa2-sdk-faq"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.
# FAQ
Classic/VPC 환경에서 이용 가능합니다.
자주 하는 질문에 대한 답변으로 궁금증을 빠르게 해소할 수 있습니다. 만약 다음의 자주 하는 질문에서 원하는 답을 얻지 못한 경우 사용 가이드에서 원하는 내용을 찾아서 확인해 보십시오. Effective Log Search & Analytics 2.0 FAQ는 다음과 같은 주제로 구성되어 있습니다.
[Android SDK v1/v2/v3](/docs/elsa2-sdk-faq#AndroidSDKv1v2v3) [iOS SDK](/docs/elsa2-sdk-faq#iOSSDK) [log4j/logback/log4j2 SDK v2](/docs/elsa2-sdk-faq#log4jlogbacklog4j2SDKv2)
## Android SDK v1/v2/v3
Android SDK v1/v2/v3와 관련하여 자주 하는 질문과 답변은 다음과 같습니다.
### Q. 크래시 발생 시 파일에 저장된 로그를 모두 Effective Log Search & Analytics 2.0 서버로 전송하는 방법은 무엇입니까?
A. 크래시 콜백 함수 중 `finishSendNeloCrash()` 함수에서 `NeloLog.flush()`을 호출해 주십시오. 크래시 발생 시 파일과 큐에 있는 모든 로그를 서버로 전송합니다.
### Q. 보낸 적 없는 `New User install App` 로그가 전송됩니다.
A. `New User install App` 로그는 애플리케이션이 최초 설치된 시점에 한 번 전송됩니다.
### Q. proguard 적용 시 주의할 점이 있습니까?
A. proguard 적용 시 `ThriftConnector`, `HttpsConnector`도 난독화하면 해당 클래스를 찾지 못해 로그 전송에 실패합니다. 이 클래스들은 proguard 적용 시 제외 처리해 주십시오.
### Q. "Could not find class 'com.nhncorp.nelo2.android.HttpsConnector', referenced from method com.nhncorp.nelo2.android.Nelo2ConnectorFactory.getConnector" 에러가 발생합니다.
A. SDK 설치 시 HTTPS 프로토콜 사용에 필요한 파일을 추가하지 않은 경우 발생하는 경고 문구입니다. Thrift 프로토콜만 사용하는 경우 무시해도 됩니다.
## iOS SDK
iOS SDK와 관련하여 자주 하는 질문과 답변은 다음과 같습니다.
### Q. bitcode enabled 앱의 `dSYMs(Symbol)`은 어디서 다운로드할 수 있습니까?
A. Xcode 또는 iTunes Connect에서 다운로드할 수 있습니다.
- iTunes Connect에서 `dSYM` 파일을 다운로드하려면, **My Apps** 메뉴의 앱의 빌드 목록에서 원하는 버전을 선택한 후 **Download dSYM**을 클릭해 주십시오.
## log4j/logback/log4j2 SDK v2
log4j/logback/log4j2 SDK v2와 관련하여 자주 하는 질문과 답변은 다음과 같습니다.
### 공통
log4j/logback/log4j2에 공통으로 해당되는 질문과 답변은 다음과 같습니다.
#### Q. 배치 프로그램 또는 간단한 테스트 프로그램에서 AsyncAppender를 사용하는 방법은 무엇입니까?
A. 프로그램의 마지막에 다음과 같이 몇 초간 대기하는 코드를 추가해 주십시오.
```
try {
Thread.sleep(3000L);
} catch (InterruptedException ignore){}
```
AsyncAppender는 로그를 기록하는 별도의 데몬 스레드를 통해 비동기로 로그를 전송합니다. Java의 배치 프로그램에서는 메인 스레드가 바로 종료되기 때문에, log4jAsyncAppender의 데몬 스레드가 생성되어 로그를 보내기 전에 배치 애플리케이션 및 JVM이 종료됩니다. 따라서, 프로그램 마지막에 대기하는 코드를 추가하여 모든 로그를 전송한 후 프로그램을 종료하도록 합니다.
#### Q. Java stack trace를 log4j/logback에 포함하는 방법은 무엇입니까?
A. Action / BO / DAO / Java batch program 등에서 log4j/logback을 이용하여 스택 트레이스(stack trace)를 출력하려면 `log.error(e.getMessage(), e);` 형태로 사용해 주십시오.
- SLF4J Logger는 메소드의 인자로 `Throwable`만 받는 로깅 메소드는 지원하지 않습니다.
```
String[] aa = null;
try {
aa[0] = "111";
} catch (NullPointerException e) {
// log.error(e); //SLF4J에서는 지원하지 않는 메소드.
log.error(e.getMessage(), e); ///stacktrace 출력
}
```
#### Q. log4j/logback/log4j2 로깅으로 인한 성능 저하를 최소화하는 방법은 무엇입니까?
A. `log4j.xml`, `logback.xml`, `log4j2.xml`의 각 logger 설정에서 `name`과 `level`을 사용하여 필터링을 최대화할 수 있습니다.
- logger 설정에서 `com`이나 `org`를 `DEBUG` 레벨로 설정하게 되면 logger에서 많은 `ILoggingEvent(log4j)`/`ILoggingEvent(logback)`/`ILoggingEvent(log4j2)`가 불필요하게 생성되어 성능이 저하됩니다.
- nelo log4j appender에서 Threshold가 `ERROR`로 설정되어 있어 실제 로그 전송은 되지 않지만, 일단 logger에서 LoggingEvent가 생성되어 appender에 전달됩니다.
- log4j의 경우의 예시
- 성능이 저하되는 설정(개발용으로만 사용)
```
```
- 성능을 고려한 설정(운영용으로 사용)
```
```
#### Q. Thrift bulk 전송 시 타임아웃(timeout)이 발생합니다.
A. 수집 서버에 정상적으로 로그를 전송하지 못한 경우 다음과 같은 로그가 나타납니다. 이 경우 xml appender 설정에서 `timeout` 값을 증가시키고, `bulkSize`를 낮추어 한 패킷에 포함되는 데이터를 줄여 주십시오.
```
[NELO2] sendMessage (1426319665440) sendBulk failed.. Error occur : java.net.SocketTimeoutException: Read timed out
```
### log4j/logback
log4j와 logback에 해당되는 질문과 답변은 다음과 같습니다.
#### Q. WAS에서 사용 시 안정적으로 WAS를 종료하는 방법은 무엇입니까?
A. 에러 로그가 전송 중인 상황에서 WAS(Tomcat 등)가 종료되는 경우, 간혹 WAS가 정상적으로 종료되지 않을 수 있습니다. WAS 종료 시에 `LoggerContext` 인스턴스에 대해 `stop()` 메소드를 호출하여 nelo2 java appender를 닫으면 안정적으로 종료할 수 있습니다.
참고
Spring에서는 log4j에 대해 org.springframework.web.util.Log4jConfigListener를 제공하지만, logback에 대해서는 Listener를 제공하지 않습니다. logback은 Nelo2 logback SDK 자체적으로 LogbackShutdownListener를 제공합니다.
### logback
logback에 해당되는 질문과 답변은 다음과 같습니다.
#### Q. httpClient의 로깅 관련 경고 메시지가 나타납니다.
A. HTTP 프로토콜을 사용하는 경우, 애플리케이션이 시작할 때 다음과 같은 로그가 발생합니다. 이는 `httpClient` 라이브러리가 apache logging 프레임워크를 사용하기 때문이며, 여기서 생성된 로그는 `root logger`에 남습니다.
```
SLF4J: The following loggers will not work because they were created
SLF4J: during the default configuration phase of the underlying logging system.
SLF4J: See also http://www.slf4j.org/codes.html#substituteLogger
SLF4J: org.apache.http.impl.conn.PoolingClientConnectionManager
SLF4J: org.apache.http.impl.conn.DefaultClientConnectionOperator
SLF4J: org.apache.http.impl.client.DefaultHttpClient
```