iOS のロギングは IOSLogHandler.java によって処理されます。
これは java.util.logging.Handler
をオーバーライドします。logging.properties
リソースを追加することで、デフォルトとして設定できます。
LogManager で確認できます。
プログラムでロギング ハンドラを変更する
プログラムでロギング ハンドラを追加するには、Java で変更する場合と同じコードを使用します。
LogManager.getLogger("").addHandler(myHandler);
既存のハンドラを実行しない場合は、まず以下を使用してハンドラを削除します。
Logger logger = LogManager.getLogger("");
for (Handler h : logger.getHandlers()) {
logger.removeHandler(h);
}
プロパティ ファイルを使用したロギング ハンドラの変更
logging.properties ファイルを使用してデフォルトのロギング ハンドラを変更するには、そのハンドラを指定する必要があります。 (Java アプリケーションの場合と同じ):
handlers=mycompany.mylogger.MyIOSLogHandler java.util.logging.ConsoleHandler.level=ALL
このファイルには、読み込み時にその名前が使用されている限り、任意の名前を付けることができます。
次に、プロジェクトに logging.properties ファイルを iOS リソースとして追加します。
Java アプリケーションとは異なり、J2ObjC アプリケーションではプロパティ ファイルを明示的に読み込む必要があります。
static { // Fetch a logger in case the following leaves logging in a bad state, such // as not adding the logging.properties resource or using a different name. Logger log = Logger.getLogger("configLogger"); try { InputStream loggingProperties = SomeClass.class.getResourceAsStream("logging.properties"); LogManager.getLogManager().readConfiguration(loggingProperties); } catch (IOException exception) { log.log(Level.SEVERE, "Error in loading configuration", exception); } }