--- title: "Logback SDK v2" slug: "elsa2-sdk-logback" tags: ["elsa2", "Log4j", "log4j2", "logback", "sdk", "로그 전송"] updated: 2026-09-17T09:28:51Z published: 2026-09-17T09:28:51Z canonical: "guide.ncloud-docs.com/elsa2-sdk-logback" --- > ## 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. # Logback SDK v2 Classic/VPC環境で利用できます。 logback SDK v2では、Effective Log Search & Analytics 2.0サービスで提供する logback SDK使用方法を説明します。 SDKを使用する手順は、次の通りです。 [1. 事前準備](/docs/ja/elsa2-sdk-logback#1%EC%82%AC%EC%A0%84%EC%A4%80%EB%B9%84) [2. Dependency追加](/docs/ja/elsa2-sdk-logback#2Dependency%EC%B6%94%EA%B0%80) [3. デフォルト Appender設定](/docs/ja/elsa2-sdk-logback#3%EA%B8%B0%EB%B3%B8Appender%EC%84%A4%EC%A0%95) [4. AsyncAppender設定](/docs/ja/elsa2-sdk-logback#4AsyncAppender%EC%84%A4%EC%A0%95) [5. SDKを使用する](/docs/ja/elsa2-sdk-logback#5SDK%EC%82%AC%EC%9A%A9) ## 1. 事前準備 logback SDKをインストールするための事前準備事項は、次の通りです。 1. NAVERクラウドプラットフォームコンソールで、[プロジェクトを作成](/docs/ja/elsa2-project)します。 2. 作成した[プロジェクト詳細情報画面](/docs/ja/elsa2-project#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%83%81%EC%84%B8%EC%A0%95%EB%B3%B4%ED%99%95%EC%9D%B8)で txtToken値を確認します。 3. logback SDKを[ダウンロード](/docs/ja/elsa2-sdk-download)します。 ## 2. Dependency追加 logback SDK v2をインストールする方法は、次の通りです。 1. ダウンロードした SDKファイルの圧縮を解凍します。 2. pom.xmlファイルに以下のように dependencyを追加します。 ``` nelo2-java-sdk-core nelo2-java-sdk-core 1.6.6 system /nelo2-java-sdk-core-1.6.6.jar nelo2-java-sdk nelo2-java-sdk-logback 1.6.6 system /nelo2-java-sdk-logback-1.6.6.jar ch.qos.logback logback-classic 1.1.7 org.apache.thrift libthrift 0.9.3 org.apache.httpcomponents httpclient 4.2.6 com.fasterxml.jackson.core jackson-databind 2.3.1 ``` - `<systemPath>`に各々 coreモジュール(nelo2-java-sdk-core-1.6.6.jar)と logbackモジュール(nelo2-java-sdk-logback-1.6.6.jar)のパス追加 参考 この SDKは logbackの slf4jバインドライブラリである logback-classicを含めて提供します。 - slf4jは特性上、同時に1つのバインドのみサポートするため、他の slf4jバインドのためのライブラリを一緒に使用できません。 - 既存の使用中の参照ライブラリと nelo2 logback SDKで参照するライブラリが重複する場合、問題が発生することがあります。この場合、より上位のバージョンを使用してください(推奨)。 ## 3. デフォルト Appender設定 デフォルト Appenderを設定する方法は、次の通りです。 - logbackは `logback.groovy` → `logback-test.xml` → `logback.xml` 順に設定ファイルを検索します。 - ここでは `logback.xml` 文書を基準に説明します。 - ファイル名: `logback.xml` 1. `configuration`は、以下の例のように入力します。 ``` nelo COLLECTOR_HOST COLLECTOR_PORT PROJECT_KEY PROJECT_VERSION LOG_TYPE LOG_SOURCE http COLLECTOR_HOST COLLECTOR_PORT PROJECT_KEY PROJECT_VERSION LOG_TYPE LOG_SOURCE ``` 2. `appender`は、以下の例のように入力します。 ``` ``` 各設定オプションの説明は、次の通りです。 | 設定オプション | 説明 | | --- | --- | | `Appender` | 転送プロトコルに応じて Appenderのクラス名を選択 - Thrift Appender: `com.naver.nelo2.logback.ThriftAppender` - Http Appender: `com.naver.nelo2.logback.HttpAppender` | | `projectName` | プロジェクトキー | | `version` | プロジェクトバージョン(英数字、-、_、.のみ許可し、先頭は英数字/_にすること) | | `collectorUrl` | ログ収集サーバの URL - Thrift Appender: `elsa-v2-col.ncloud.com` - Http Appender: `http://elsa-v2-col.ncloud.com/_store` | | `port` | 収集サーバポート - Thrift Appender: `10006` - Http Appender: `80` | | `enable` | SDKの使用有無(デフォルト値 `true`) | | `logType` | ログタイプ(logType)の設定 | | `logSource` | ログソース(logSource)の設定 | | `errorCodeType` | エラーコードタイプ - `default`: log4jの基本情報のうち、Exception情報を使用 - Exception情報が渡されていない場合(log.error(message)の形式でログが記録される場合)は、全体のエラーメッセージをエラーコードとして使用する - 例) NullPointerExceptionが発生した場合: `NullPointerException` - `message`: エラーメッセージの先頭からスペース文字まで使用 - 例) エラーメッセージが `다운로드에러 다운로드가 실패했습니다.`の場合、「ダウンロードエラー」のみ使用 - `mdc`: SLF4J MDCに設定した `errorCode`値を使用 - 例) `MDC.put("errorCode", "Login")`に設定した場合、`Login`を使用 | | `debug` | Effective Log Search & Analytics 2.0のデバッグ情報を表示(デフォルト値: `false`) - このオプションは全域的に適用され、`true`が `false`より優先。複数の appender宣言されていて、その中から1つの `debug` 値が `true`の場合、すべての appenderでコンソールにデバッグログを出力 | | `timeout` | 転送時に使用する socketのタイムアウト(デフォルト値: 5000ms(5秒)) | | `keepAlive` | 転送時に使用する socketの keepAliveタイムアウト(デフォルト値: 60000ms(1分)、最大値: 180000ms(3分)) | | `isBulkEnabled` | bulkモードの使用有無を設定(デフォルト値: `true`) - 設定値が `false`の場合、ログを件数ごとに転送(singleモード) | | `bulkSize` | bulkモードの使用時に、1つの bulkリクエストに転送するログの最大数(デフォルト値: 1000、最大値: 100000) | | `bulkInterval` | bulkモードを使用する場合、bulkリクエストを呼び出すことになる周期(デフォルト値: 1000ms(1秒)、最大値: 10000ms(10秒)) | | `alwaysIncludeLocation` | `Location` フィールドをすべてのログに追加するかどうかを設定(デフォルト値: `true`) - `false` 設定時: ログレベル(logLevel)が `ERROR`であるログの `Location`フィールドを確認した後に設定 - `true` 設定時: すべてのログに対して `Location`フィールドを確認した後に設定。`false`に比べてロギングパフォーマンスに悪い影響を与えることがある | | `mdcConversionRule` | MDC keyリネームルールの設定 - 形式: `key1:newKey1;key2:newkey2;...` - 例) `time:date;fullname:name`(MDC keyの `time`を `date`と、`fullname`を `name`とリネームする場合) | 注意 メモリ使用量に関して、以下をご注意ください。 - 提供する SDKは `bulk`転送モードをデフォルトで使用し、`bulkSize`のデフォルト値は1000です。1つの Effective Log Search & Analytics 2.0ログは `projectName` などの複数のフィールドを含めているので、ログボディが非常に短い場合にも1kb程度のメモリに含まれます。基本設定の場合、Nelo2 bulkは `(로그 사이즈 + 1 kb)x1000`だけのメモリに含まれます。 - Javaプロセスを起動する場合、最大ヒープを `-Xmx` オプションとして指定できます。この時、付加的なメモリ使用量も検討してください。 - `bulkSize` オプションをより大きく指定する場合は、特にご注意ください。 ### bulkと singleモード NELO2 logback SDKはログを件数ごとに転送する singleモードとセット単位で転送する bulkモードをサポートします。xml appender設定で `isBulkEnabled`を `true` または `false`にし、bulkと singleモードの中から選択できます(デフォルト値: `true`(bulkモード))。 プロトコルに応じて以下のパフォーマンス指標をご参照ください。 - 1分間単一スレッドで 1kb sizeのログを転送する場合の throughput - thrift - singleモード: 2587.93logs/sec - bulkモード: 6492.99logs/sec - http - singleモード: 595.86logs/sec - bulkモード: 4617.98logs/sec 参考 - 上記のパフォーマンステストに使用した装置のスペックは、次の通りです。 - ログ転送サーバ: 2GHZ、12core cpu、48G mem - ログ収集サーバ: 2.26GHZ、12core cpu、48G mem - 負荷に応じて転送パフォーマンスは異なります。 - テストは負荷がない状況で実行され、実際に使用中のインスタンスに送信する際には比較的低いパフォーマンスを示します。 - インスタンス負荷に応じたパフォーマンスの体験は、bulkモードに比べて singleモードでより大きく表示されます。そのため、デフォルト値である bulkモードを使用してください(推奨)。 - 収集サーバが許可する最大パケットのサイズは30mbです。クライアントサーバのログパターンを検討し、適切な `bulkSize`を設定します(デフォルト値: 1000)。 ## 4. AsyncAppender設定 デフォルトで使用する Appenderに追加として logbackでサポートする AsyncAppenderを使用し、実際のログ転送を別途スレッドで行えます。 以下の例を参照し、AsyncAppenderを設定します。 注意 AsyncAppenderの `includeLocation`を `true`に設定します。そうでない場合、転送時にエラーが発生します。 参考 AsyncAppender設定の詳細情報は、[logbackマニュアル](https://logging.apache.org/log4j/2.x/manual/appenders.html)をご参照ください。 例) ``` nelo COLLECTOR_HOST COLLECTOR_PORT PROJECT_KEY PROJECT_VERSION LOG_TYPE LOG_SOURCE http COLLECTOR_HOST COLLECTOR_PORT PROJECT_KEY PROJECT_VERSION LOG_TYPE LOG_SOURCE true ``` ## 5. SDKを使用する 以下の Effective Log Search & Analytics 2.0 logback SDKを使用する実際のサンプルコードを参照し、プロジェクトにログを転送します。 ``` import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger("nelo"); ... logger.debug("Effective Log Search & Analytics logback SDK Debug Message"); try { String npe = null; npe.toString(); } catch(Exception e) { logger.error("Effective Log Search & Analytics logback SDK Exception", e); } ``` 参考 Effective Log Search & Analytics 2.0 logback SDKの制限事項は、次の通りです。 - AsyncAppenderの使用時、転送スピードに比べてログの発生スピードが早い場合は、`queueSize`(デフォルト値: 128)を超過して発生したログは転送しません。 - `includeCallerData` デフォルト値が `false`の場合、AsyncAppenderはログの発生場所情報を無視することになります。 - AsyncAppenderとデフォルト Appenderは、以下の基準に従って選択してください(推奨)。 - デフォルト Appender: ログ損失を最小化したい場合 - AsyncAppende: Effective Log Search & Analytics 2.0サービスシステムの障害時、アプリケーションのパフォーマンス低下の恐れがある場合 ## logback SDK v2のトラブルシューティング logback SDK v2に関して発生し得る問題と解決方法を確認します。 ### Effective Log Search & Analytics 2.0サーバにログを転送したが、これをウェブで確認できない場合 転送したログをウェブで確認できない場合、以下のように対応します。 1. ログを Effective Log Search & Analytics 2.0収集サーバに転送した後、結果メッセージにエラーがない場合は `projectName`が正しいか確認します。 2. 実際にエラーデータが転送されることを確認します。 - 設定ファイル(logback.xml)で Effective Log Search & Analytics 2.0 NELO appenderの `debug` プロパティを `true`に設定して実行した後、以下のような転送ログが出力されることを確認します。 ``` ERROR [NELO2] Log Append : sent event, return value : … ```