- 印刷する
- PDF
FAQ
- 印刷する
- PDF
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の適用時に 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の場合の例
- パフォーマンスが低下する設定(開発用のみで使用)
<!-- 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