/* * Copyright (c) 2011 NTT DATA Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jp.terasoluna.fw.logger; import java.util.Locale; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import jp.terasoluna.fw.message.MessageManager; /** * 汎用ロガークラス。<br> * <p> * CommonsLoggingのロガーをラップしたロガーです。<br> * ログメッセージをプロパティファイルで管理し、ログ出力メソッドの引数にログIDを渡すことで、プロパティファイル中のログIDに対するメッセージを出力できます。 * </p> * <h3>ロガー取得</h3> * <p> * ロガーの取得は他のロガーライブラリとほぼ同じです。 * </p> * * <pre> * TLogger logger = TLogger.getLogger(XX.class); * または * TLogger logger = TLogger.getLogger("カテゴリ名"); * </pre> * * <h3>ログ出力</h3> * <p> * 次のようなログメッセージプロパティファイルがある場合 * </p> * * <pre> * DEB001=debug message * ERR001=error message * </pre> * <p> * このメッセージを出力するには * </p> * * <pre> * logger.debug("DEB001"); * logger.error("ERR001"); * </pre> * <p> * のようにログレベルに応じたメソッドにログIDを渡して実行します。 出力メッセージは * </p> * * <pre> * [DEB001] debug message * [ERR001] error message * </pre> * <p> * となります。メッセージの前に[ログID]が自動で付きます。<br> * * ログレベルは * <ul> * <li>FATAL</li> * <li>ERROR</li> * <li>WARN</li> * <li>INFO</li> * <li>DEBUG</li> * <li>TRACE</li> * </ul> * があります。<code>log(String logId)</code>メソッドを使用すると、ログIDの一文字目を見てログレベルを判断します。 * </p> * <h3>パラメータ置換</h3> * <p> * 出力するログメッセージを作成する際に、{@link java.text.MessageFormat} * を使用しています。置換パラメータを可変長配列で渡すことができます。 * </p> * * <pre> * DEB002={0} is {1}. * </pre> * <p> * という定義がある場合、 * </p> * * <pre> * logger.debug("DEB002", "hoge", "foo"); * </pre> * <p> * を実行すると出力メッセージは * </p> * * <pre> * [DEB002] hoge is foo. * </pre> * <p> * となります。 <br> * 内部でメッセージ文字列を作成する際にログレベルのチェックを行っているので、 * </p> * * <pre> * if (logger.isDebugEnabled()) { * logger.debug("DEB002", "hoge", "foo"); * } * </pre> * <p> * というif文を書く必要がありません。(ただし、 * パラメータを作成する際にメソッドを呼び出している場合はif文を書いて明示的にログレベルチェックを行ってください。) * </p> * <h3>メッセージプロパティファイルにないメッセージの出力</h3> * <p> * メッセージプロパティファイル中のログIDを渡す他に、直接メッセージを渡す方法があります。第1引数にfalse * を設定し、第2引数にメッセージ本文を直接記述できます。第3引数以降は置換パラメータです。この場合は当然ログIDは出力されません。 * </p> * * <pre> * logger.warn(false, "warn!!"); * logger.info(false, "Hello {0}!", "World"); * </pre> * <p> * 出力メッセージは * </p> * * <pre> * warn!! * Hello World! * </pre> * <p> * となります。 * </p> * <h3>設定ファイル</h3> * <p> * クラスパス直下の<code>META-INF</code>ディレクトリに<code>terasoluna-logger.properties</code> * を作成してください。 * </p> * <h4>メッセージプロパティファイルのベースネーム設定</h4> * <p> * <code>terasoluna-logger.properties</code>の<code>message.basename</code> * キーにメッセージプロパティファイルのベースネームをクラスパス相対(FQCN)で設定してください。<br> * {@link java.util.ResourceBundle}で読み込むので、国際化に対応しています。 * </p> * * <pre> * message.basename = hoge * </pre> * <p> * と書くとクラスパス直下のhoge.propertiesが読み込まれます。 * </p> * * <pre> * message.basename=hoge,foo,bar * </pre> * <p> * のように半角カンマ区切りで設定すると全てを読み込みます。<br> * <code>META-INF/terasoluna-logger.properies</code>の * <code>message.basename</code>はモジュール毎に設定できます。 ロガーは全てのモジュール(jar)が持つ、 * <code>message.basename</code>の値をマージしてメッセージを取得します。 <br> * これにより、モジュール毎にログメッセージを管理することができます。 * </p> * <h4>出力ログIDフォーマット設定</h4> * <p> * ログ出力時に自動で付加されるログIDのフォーマットを設定できます。<br> * <code>message.id.format</code>キーに * {@link java.lang.String#format(String, Object...)} * のフォーマット形式で設定してください。ログIDが文字列として渡されます。 <br> * 設定しない場合は「[%s]」がデフォルト値として使用されます。 <br> * </p> * * <pre> * message.id.format=[%-8s] * </pre> * <p> * のように設定すると、モジュール間で異なる長さのログIDを左寄せで揃えて出力できます。 <br> * この設定値はモジュール毎に管理することはできません。 <br> * クラスローダの読み込み優先度が一番高い<code>terasoluna-logger.properties</code>の値が反映されます。 * (通常、アプリ側の設定となります。) * </p> */ public class TLogger implements Log { /** * ロガー実体。 */ private final Log logger; /** * ロガー設定ファイル。 */ private static final String CONFIG_FILENAME = "META-INF/terasoluna-logger.properties"; /** * メッセージ管理。 */ private static final MessageManager MESSAGE_MANAGER = new MessageManager( CONFIG_FILENAME); /** * ロケールを保持するスレッドローカル。 */ private static final ThreadLocal<Locale> locale = new ThreadLocal<Locale>(); /** * コンストラクタ。 * * @param clazz カテゴリ名となるクラス */ protected TLogger(Class<?> clazz) { logger = LogFactory.getLog(clazz); } /** * コンストラクタ。 * * @param name カテゴリ名 */ protected TLogger(String name) { logger = LogFactory.getLog(name); } /** * ロケールを設定します。 * * @param locale ロケール */ public static void setLocale(Locale locale) { TLogger.locale.set(locale); } /** * ログメッセージを作成します。 * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ * @return ログメッセージ文字列 * @see {@link MessageManager#getMessage(boolean, String, Locale, Object...)} */ protected String createMessage(boolean resource, String logIdOrPattern, Object... args) { String message = MESSAGE_MANAGER.getMessage(resource, logIdOrPattern, locale.get(), args); return message; } /** * ロガーを取得します。 * * @param clazz カテゴリ名となるクラス * @return ロガー */ public static TLogger getLogger(Class<?> clazz) { return new TLogger(clazz); } /** * ロガーを取得します。 * * @param name カテゴリ名 * @return ロガー */ public static TLogger getLogger(String name) { return new TLogger(name); } /** * {@inheritDoc} */ @Override public boolean isFatalEnabled() { return logger.isFatalEnabled(); } /** * FATALログを出力します。 * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ */ public void fatal(boolean resource, String logIdOrPattern, Object... args) { if (isFatalEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.fatal(message); } } /** * FATALログを出力します。 * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param throwable 起因例外 * @param args 置換パラメータ */ public void fatal(boolean resource, String logIdOrPattern, Throwable throwable, Object... args) { if (isFatalEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.fatal(message, throwable); } } /** * FATALログを出力します。 * * @param logId ログID * @param args 置換パラメータ */ public void fatal(String logId, Object... args) { fatal(true, logId, args); } /** * FATALログを出力します。 * * @param logId ログID * @param throwable 起因例外 * @param args 置換パラメータ */ public void fatal(String logId, Throwable throwable, Object... args) { fatal(true, logId, throwable, args); } /** * {@inheritDoc} */ @Override public boolean isErrorEnabled() { return logger.isErrorEnabled(); } /** * ERRORログを出力します。<br> * <p> * ロガーのログレベルがERRORより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ */ public void error(boolean resource, String logIdOrPattern, Object... args) { if (isErrorEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.error(message); } } /** * ERRORログを出力します。<br> * <p> * ロガーのログレベルがERRORより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param throwable 起因例外 * @param args 置換パラメータ */ public void error(boolean resource, String logIdOrPattern, Throwable throwable, Object... args) { if (isErrorEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.error(message, throwable); } } /** * ERRORログを出力します。<br> * <p> * ロガーのログレベルがERRORより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param args 置換パラメータ */ public void error(String logId, Object... args) { error(true, logId, args); } /** * ERRORログを出力します。<br> * <p> * ロガーのログレベルがERRORより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 * @param args 置換パラメータ */ public void error(String logId, Throwable throwable, Object... args) { error(true, logId, throwable, args); } /** * {@inheritDoc} */ @Override public boolean isWarnEnabled() { return logger.isWarnEnabled(); } /** * WARNログを出力します。<br> * <p> * ロガーのログレベルがWARNより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ */ public void warn(boolean resource, String logIdOrPattern, Object... args) { if (isWarnEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.warn(message); } } /** * WARNログを出力します。<br> * <p> * ロガーのログレベルがWARNより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param throwable 起因例外 * @param args 置換パラメータ */ public void warn(boolean resource, String logIdOrPattern, Throwable throwable, Object... args) { if (isWarnEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.warn(message, throwable); } } /** * WARNログを出力します。<br> * <p> * ロガーのログレベルがWARNより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId  ログID * @param args 置換パラメータ */ public void warn(String logId, Object... args) { warn(true, logId, args); } /** * WARNログを出力します。<br> * <p> * ロガーのログレベルがWARNより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 * @param args 置換パラメータ */ public void warn(String logId, Throwable throwable, Object... args) { warn(true, logId, throwable, args); } /** * {@inheritDoc} */ @Override public boolean isInfoEnabled() { return logger.isInfoEnabled(); } /** * INFOログを出力します。<br> * <p> * ロガーのログレベルがINFOより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ */ public void info(boolean resource, String logIdOrPattern, Object... args) { if (isInfoEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.info(message); } } /** * INFOログを出力します。<br> * <p> * ロガーのログレベルがINFOより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param throwable 起因例外 * @param args 置換パラメータ */ public void info(boolean resource, String logIdOrPattern, Throwable throwable, Object... args) { if (isInfoEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.info(message, throwable); } } /** * INFOログを出力します。<br> * <p> * ロガーのログレベルがINFOより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param args 置換パラメータ */ public void info(String logId, Object... args) { info(true, logId, args); } /** * INFOログを出力します。<br> * <p> * ロガーのログレベルがINFOより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 * @param args 置換パラメータ */ public void info(String logId, Throwable throwable, Object... args) { info(true, logId, throwable, args); } /** * {@inheritDoc} */ @Override public boolean isDebugEnabled() { return logger.isDebugEnabled(); } /** * DEBUGログを出力します。<br> * <p> * ロガーのログレベルがDEBUGより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ */ public void debug(boolean resource, String logIdOrPattern, Object... args) { if (isDebugEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.debug(message); } } /** * DEBUGログを出力します。<br> * <p> * ロガーのログレベルがDEBUGより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param throwable 起因例外 * @param args 置換パラメータ */ public void debug(boolean resource, String logIdOrPattern, Throwable throwable, Object... args) { if (isDebugEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.debug(message, throwable); } } /** * DEBUGログを出力します。<br> * <p> * ロガーのログレベルがDEBUGより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param args 置換パラメータ */ public void debug(String logId, Object... args) { debug(true, logId, args); } /** * DEBUGログを出力します。<br> * <p> * ロガーのログレベルがDEBUGより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 * @param args 置換パラメータ */ public void debug(String logId, Throwable throwable, Object... args) { debug(true, logId, throwable, args); } /** * {@inheritDoc} */ @Override public boolean isTraceEnabled() { return logger.isTraceEnabled(); } /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param args 置換パラメータ */ public void trace(boolean resource, String logIdOrPattern, Object... args) { if (isTraceEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.trace(message); } } /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param resource リソース有無 * @param logIdOrPattern ログID(リソース有の場合) / ログメッセージパターン(リソース無の場合) * @param throwable 起因例外 * @param args 置換パラメータ */ public void trace(boolean resource, String logIdOrPattern, Throwable throwable, Object... args) { if (isTraceEnabled()) { String message = createMessage(resource, logIdOrPattern, args); logger.trace(message, throwable); } } /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param args 置換パラメータ */ public void trace(String logId, Object... args) { trace(true, logId, args); } /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 * @param args 置換パラメータ */ public void trace(String logId, Throwable throwable, Object... args) { trace(true, logId, throwable, args); } /** * ログIDの以下の規約に合ったレベルのログを出力します。<br> * <p> * ログIDの先頭文字が * <ul> * <li>T...TRACEログ</li> * <li>D...DEBUGログ</li> * <li>I...INFOログ</li> * <li>W...WARNログ</li> * <li>E...ERRORログ</li> * <li>F...FATALログ</li> * <li>それ以外...DEBUGログ</li> </u> * </p> * * @param logId ログID * @param args 置換パラメータ */ public void log(String logId, Object... args) { if (logId != null && logId.length() > 0) { char messageType = logId.charAt(0); switch (messageType) { case 'T': trace(logId, args); break; case 'D': debug(logId, args); break; case 'I': info(logId, args); break; case 'W': warn(logId, args); break; case 'E': error(logId, args); break; case 'F': fatal(logId, args); break; default: debug(logId, args); break; } } } /** * ログIDの以下の規約に合ったレベルのログを出力します。<br> * <p> * ログIDの先頭文字が * <ul> * <li>T...TRACEログ</li> * <li>D...DEBUGログ</li> * <li>I...INFOログ</li> * <li>W...WARNログ</li> * <li>E...ERRORログ</li> * <li>F...FATALログ</li> * <li>それ以外...DEBUGログ</li> </u> * </p> * * @param logId ログID * @param args 置換パラメータ */ public void log(String logId, Throwable throwable, Object... args) { if (logId != null && logId.length() > 0) { char messageType = logId.charAt(0); switch (messageType) { case 'T': trace(logId, throwable, args); break; case 'D': debug(logId, throwable, args); break; case 'I': info(logId, throwable, args); break; case 'W': warn(logId, throwable, args); break; case 'E': error(logId, throwable, args); break; case 'F': fatal(logId, throwable, args); break; default: debug(logId, throwable, args); break; } } } /** * TRACEログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #trace(String, Object...)}を使用してください。 * </p> * * @param message メッセージ * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 * */ @Deprecated @Override public void trace(Object message) { trace(false, "{0}", message); } /** * TRACEログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #trace(String, Throwable, Object...)}を使用してください。 * </p> * * @param message メッセージ * @param t 起因例外 * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void trace(Object message, Throwable t) { trace(false, "{0}", t, message); } /** * DEBUGログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #debug(String, Object...)}を使用してください。 * </p> * * @param message メッセージ * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 * */ @Deprecated @Override public void debug(Object message) { debug(false, "{0}", message); } /** * DEBUGログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #debug(String, Throwable, Object...)}を使用してください。 * </p> * * @param message メッセージ * @param t 起因例外 * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 * */ @Deprecated @Override public void debug(Object message, Throwable t) { debug(false, "{0}", t, message); } /** * INFOログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #info(String, Object...)}を使用してください。 * </p> * * @param message メッセージ * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 * */ @Deprecated @Override public void info(Object message) { info(false, "{0}", message); } /** * INFOログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #info(String, Throwable, Object...)}を使用してください。 * </p> * * @param message メッセージ * @param t 起因例外 * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void info(Object message, Throwable t) { info(false, "{0}", t, message); } /** * WARNログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #warn(String, Object...)}を使用してください。 * </p> * * @param message メッセージ * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void warn(Object message) { warn(false, "{0}", message); } /** * WARNログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #warn(String, Throwable, Object...)}を使用してください。 * </p> * * @param message メッセージ * @param t 起因例外 * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void warn(Object message, Throwable t) { warn(false, "{0}", t, message); } /** * ERRORログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #error(String, Object...)}を使用してください。 * </p> * * @param message メッセージ * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void error(Object message) { error(false, "{0}", message); } /** * ERRORログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #error(String, Throwable, Object...)}を使用してください。 * </p> * * @param message メッセージ * @param t 起因例外 * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void error(Object message, Throwable t) { error(false, "{0}", t, message); } /** * FATALログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #fatal(String, Object...)}を使用してください。 * </p> * * @param message メッセージ * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void fatal(Object message) { fatal(false, "{0}", message); } /** * FATALログを出力します。<br> * <p> * CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。<br> * 代わりに{@link #fatal(String, Throwable, Object...)}を使用してください。 * </p> * * @param message メッセージ * @param t 起因例外 * @deprecated CommonsLoggingのLogインタフェースを実装するためのAPIであり、使用しないでください。 */ @Deprecated @Override public void fatal(Object message, Throwable t) { fatal(false, "{0}", t, message); } /** * ログメッセージを取得します。 * * @param logId ログID * @param args 置換パラメータ * @return ログメッセージ */ public String getLogMessage(String logId, Object... args) { String message = createMessage(true, logId, args); return message; } // CommonsLoggingのLogインタフェースで利用するためのAPIを用意したための対応 /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID */ public void trace(String logId) { trace(logId, (Object[]) null); } /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 */ public void trace(String logId, Throwable throwable) { trace(logId, throwable, (Object[]) null); } /** * DEBUGログを出力します。<br> * <p> * ロガーのログレベルがDEBUGより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID */ public void debug(String logId) { debug(logId, (Object[]) null); } /** * DEBUGログを出力します。<br> * <p> * ロガーのログレベルがDEBUGより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 */ public void debug(String logId, Throwable throwable) { debug(logId, throwable, (Object[]) null); } /** * WARNログを出力します。<br> * <p> * ロガーのログレベルがWARNより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID */ public void warn(String logId) { warn(logId, (Object[]) null); } /** * TRACEログを出力します。<br> * <p> * ロガーのログレベルがTRACEより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 */ public void warn(String logId, Throwable throwable) { warn(logId, throwable, (Object[]) null); } /** * INFOログを出力します。<br> * <p> * ロガーのログレベルがINFOより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID */ public void info(String logId) { info(logId, (Object[]) null); } /** * INFOログを出力します。<br> * <p> * ロガーのログレベルがINFOより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 */ public void info(String logId, Throwable throwable) { info(logId, throwable, (Object[]) null); } /** * ERRORログを出力します。<br> * <p> * ロガーのログレベルがERRORより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID */ public void error(String logId) { error(logId, (Object[]) null); } /** * ERRORログを出力します。<br> * <p> * ロガーのログレベルがERRORより高い場合は出力されません。<br> * 詳細は{@link TLogger}を参照してください。 * </p> * * @param logId ログID * @param throwable 起因例外 */ public void error(String logId, Throwable throwable) { error(logId, throwable, (Object[]) null); } /** * FATALログを出力します。 * * @param logId ログID */ public void fatal(String logId) { fatal(logId, (Object[]) null); } /** * FATALログを出力します。 * * @param logId ログID * @param throwable 起因例外 */ public void fatal(String logId, Throwable throwable) { fatal(logId, throwable, (Object[]) null); } }