2

イベントロガーで、最小ログレベルを「デバッグ情報」に変更してネットワーク呼び出しを行うと、接続ファクトリがネットワークURLをログに記録することに気付きました。たとえば、これを見ました

guid:0x287F0A38583E7BC6時間:2013年1月21日月曜日18:29:15重大度:5タイプ:2app:net.rim.networkapiデータ:FcoChttps://xyz.co.uk/abc/test ?appversion = 1.2.3 &; deviceside = false; ConnectionType = mds-public; ConnectionTimeout = 20000; EndToEndRequired

これは、私が働いているすべてのアプリで発生します。connectionfactoryがこの情報をイベントロガーに記録しないようにする方法はありますか?

4

1 に答える 1

3

正解です。完全なURLはEventLogger.DEBUG_INFO、アプリによって重大度5()でログに記録されますnet.rim.networkapi data。Wi-FiまたはダイレクトTCPを使用している場合、URLが2回ログに記録されることもあります。これは、ホストとクエリ文字列がログに記録されるため、セキュリティ上の問題になる可能性があります。

重大度レベルをに変更するEventLogger.INFORMATIONと、望ましくないロギングが防止されるようです。

サンプルアプリ(最初に手動でイベントロガーをクリーンアップ):

    public class Main extends Application{

        public Main(){
            doTest();
        }

        private void doTest(){
            long GUID = 0x9cf1bac07b565732L; 
            EventLogger.register(GUID, "conn_factory_logging_test", EventLogger.VIEWER_STRING);
            EventLogger.setMinimumLevel(EventLogger.INFORMATION);

            ConnectionFactory factory = new ConnectionFactory();
            factory.setPreferredTransportTypes(new int[]{ TransportInfo.TRANSPORT_TCP_WIFI, TransportInfo.TRANSPORT_TCP_CELLULAR});
            ConnectionDescriptor cd = factory.getConnection("http://www.google.com");
            HttpConnection httpConnection = (HttpConnection) cd.getConnection();
            try {
                httpConnection.setRequestMethod(HttpConnection.GET);
                int responseCode = httpConnection.getResponseCode();
                String result = "Server Response: " + responseCode;

                EventLogger.logEvent(GUID, result.getBytes(), EventLogger.INFORMATION);
                EventLogger.startEventLogViewer();          
            } catch (Exception e) {
                System.err.println(e);
            } finally {
                try {
                    httpConnection.close();
                } catch (IOException e) {}
            }       
            System.exit(0);
        }

        public static void main(String[] args){
             new Main().enterEventDispatcher();
        }
    }
于 2013-01-23T15:53:49.843 に答える