iOS のロギングは、java.util.logging.Handler
をオーバーライドする IOSLogHandler.java によって処理されます。LogManager に示すように、アプリに logging.properties
リソースを追加することで、これをデフォルトに設定できます。
プログラムによるロギング ハンドラの変更
プログラムでロギング ハンドラを追加するには、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); } }