特定のクラスのエラーをログに記録するには、次のようにクラス名にアクセスします。 クラス名を文字列として返すようにするのは良い方法ですか?ロギングに使用できます?ロギングのクラス名を取得する
private static final String CLASS_NAME = MyClass.class.getName();
logger.error("Error occurred in "+CLASS_NAME);
特定のクラスのエラーをログに記録するには、次のようにクラス名にアクセスします。 クラス名を文字列として返すようにするのは良い方法ですか?ロギングに使用できます?ロギングのクラス名を取得する
private static final String CLASS_NAME = MyClass.class.getName();
logger.error("Error occurred in "+CLASS_NAME);
log4j.xml自体でロギングパラメータを設定できます。 EXPについては
-
<appender name="swcd-web" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="DEBUG"/>
<param name="Append" value="true"/>
<param name="File" value="${catalina.home}/logs/swcd-web.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
それはswcd-web.logファイル内でこのような例外が記録されます - 私はそれをこのようにやる
2012-05-23 16:34:51,632 [main] ERROR com.idc.sage.sso.dynamo.SsoDbStorage - cannot get configuration for max SSO age
あなたはロガーをこのように初期化する場合:
:private static Logger logger = Logger.getLogger(MyClass.class.getName())>
その後、クラスの名前は、すべてのロギングイベント中に存在する、明示的にすべてのログ呼び出しでそれを配置する必要はありません含める
logger.error("Error occured while doing this and that");
ザ・あなたは(あなたは、Apacheのlog4jを使用している場合java.util.logging
、またはlog4j.propertiesの場合にlogging.properties中)ロギングサービスを設定することができますすべてのログメッセージのクラス名
使用しているログライブラリを指定していないので、私はslf4jを使用することをお勧めします。私はそれがあなたが得ることが最も簡単だと思う。あなたは、単にこのようなSLF4JのLoggerFactory
からLoggerオブジェクトを尋ねる:
private static final Logger LOGGER = LoggerFactory.getLogger(YouerClass.class);
は今、あなたは、ロギング用のLoggerオブジェクトを使用することができます。
LOGGER.error(yourMessage, throwable);
あなたは、単純な文字列メッセージや全体の例外を送ることができます。たとえば、エラーをログ
は次のようになります。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;
...
private final static Logger LOG =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
エラーが発生しました:getLogger(Class
非常に奇妙です。とログバック? – MariuszS
ログバックを使用していない、ありがとう –
質問はlog4jの話ではありません。 –