FAQ
    • PDF

    FAQ

    • PDF

    Article Summary

    Classic/VPC環境で利用できます。

    ガイドを読む前に、よくある質問への回答をチェックすると不明な点をスピーディーに解消できます。以下のよくある質問から答えが得られなかった場合、ご利用ガイドで必要な内容をご確認ください。Effective Log Search & Analytics 2.0 FAQは、以下のようなテーマで構成されています。

    Android SDK v1/v2/v3
    iOS SDK
    log4j/logback/log4j2 SDK v2

    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 ログは、アプリケーションが最初インストールされた時点で1回のみ転送されます。

    Q. proguardの適用時の注意事項は何ですか?

    A. proguardの適用時に ThriftConnectorHttpsConnectorも難読化すると、当該クラスが見つからないのでログ転送に失敗します。この蔵明日は 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.xmllogback.xmllog4j2.xmlの各 logger設定で namelevelを使用してフィルタリングを最大化できます。

    • logger設定で comorgDEBUG レベルに設定すると、loggerで多くの ILoggingEvent(log4j)/ILoggingEvent(logback)/ILoggingEvent(log4j2)が不要に作成され、パフォーマンスが低下します。
    • nelo log4j appenderで Thresholdが ERRORに設定されているので、実際のログ転送は行われませが、まず loggerで LoggingEventを作成して appenderに送ります。
    • log4jの場合の例
      • パフォーマンスが低下する設定(開発用のみで使用)
        <!-- Logger -->
        <logger name="com" additivity="false">
            <level value="debug"/>
            <appender-ref ref="STDOUT" />
            <appender-ref ref="nelo-log4j" />
        </logger>
        
        <!-- Logger -->
        <logger name="org" additivity="false">
            <level value="debug"/>
            <appender-ref ref="STDOUT" />
            <appender-ref ref="nelo-log4j" />
        </logger>
        
        <!-- Root Logger -->
        <root level="warn">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="nelo-log4j" />
        </root>
        
      • パフォーマンスを検討した設定(運用向けに使用)
        <!-- Logger -->
        <logger name="com" additivity="false">
            <level value="error"/>
            <appender-ref ref="STDOUT" />
            <appender-ref ref="nelo-log4j" />
        </logger>
        
        <!-- Root Logger -->
        <root level="warn">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="nelo-log4j" />
        </root>
        

    Q. Thrift bulk転送時にタイムアウト(timeout)が発生します。

    A. 収集サーバに正常にログを転送できなかった場合、以下のようなログが表示されます。この場合、xml appender設定で timeout 値を増加させ、 bulkSizeを下げてから1つのパケットに含まれるデータを減らしてください。

    [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
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.