こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 3 回です。Weekly Report については、第 1 回の記事を参照してください。 戦略なき戦略 以下の Loggable は、ログ出力する情報を保持するインターフェースです。 interface Loggable { val logType: LogType val logLevel: LogLevel val logDescription: String val timestamp: Long val codeLocation: StackTraceElement ... ) ここで、どのプロパティをログとして出力するかを決めるために、以下の LogAttribute という列挙型が必要になったことを想定します。