Concepts and tools of logging in Java. Javaにおけるログ出力の考え方と道具について説明. CC Attribution Licenseの元に公開します.Read less
![Javaのログ出力: 道具と考え方](https://cdn-ak-scissors.b.st-hatena.com/image/square/82f188789773c0fc2d954a06b0bf3255c65bcacc/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fconceptsandtoolsoflogginginjava-151014081951-lva1-app6892-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
tomcatのシャットダウン時に下記のようなエラーログが出る。 log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository. ぐぐってみても解決策は良くわからない。 どうやらtomcatの6以降とlog4jの1.2.15の組み合わせで起きるようだ。 log4jのソースを見るとstaticブロックで初期化しているstatic変数がnullの場合にこのログが出るようだ。 普通に使っている分にはそんなことにはならないはず。 ところがtomcatでは6以降、シャットダウン時にリフレクションを使用してstatic変数を無理やりnullにするという処理が追加されている。 それによってstatic変数がnullになった後でLogg
なんとなく、JBoss Loggingのソースコードを見ていて気付いたので。 JBoss Loggingで使えるログ出力の実装は、以下の5つです。 JBoss LogManager Log4j2 Log4j SLF4J java.util.logging これらのいずれか(Logger Provider)が実行時の状態で選択されるわけですが、それは以下の順番で決定されるようです。 システムプロパティ「org.jboss.logging.provider」で指定する ServiceLoaderを使う(org.jboss.logging.LoggerProvider) クラスパスに存在しているものを使う これは、LoggerProvidersというクラスで決定されます。 https://github.com/jboss-logging/jboss-logging/blob/3.3.0.Fina
JBoss Advent Calendar 2012の3日目のエントリです。 ログというのはディスクなどのハードウェアリソースを使うものなので、基本的にデータベースコネクションやスレッド数などと同じように、ミドルウェアリソースに位置づけられ、アプリケーションサーバで一括管理できるようになっています。 と言いたいところですが、現実的にはLog4j, commons-logging, JUL(java.util.logging), SLF4J, Logbackなどログライブラリは乱立しており、各アプリでは異なるログライブラリが利用され、ログ出力設定もバラバラになされていて実際には一元管理するのはすごく大変でカオスな状態です。 JBoss ASは6までLog4jをログ実装として利用していましたが、AS7ではJBoss LogManagerというJULをベースとした実装に変更されました。これに伴い
How to Use Multiple GitHub Accounts Git is a popular tool for version control in software development. It is not uncommon to use multiple Git accounts. Correctly configuring and switching Git accounts is challenging. In this article, we show what Git provides for account configuration, its limitations, and the solution to switch accounts automatically based on a project parent directory location.
by Ceki Gülcü, November 14th, 2002, last updated October 29th, 2009, © All rights reserved Introduction Given that log4j is such a low-level library, most organizations are hesitant to tie their code to log4j, especially considering the new logging API included in JDK 1.4. Before going forward, it is appropriate to mention that these two APIs are very similar. The classical usage pattern for log4j
Log4j 2(※Log4jのver.2)が2014年7月にリリースされました。本記事執筆時点(※2014年12月)で2.1が最新です。 本家サイト:http://logging.apache.org/log4j/2.x/ 旧Log4j 1や"SLF4J with Logback"と比べて、どういった特徴があるかということについて、下記のような解説があります。 Apache Log4j 2、"Welcome to Log4j 2! - Introduction": http://logging.apache.org/log4j/2.x/manual/index.html InfoQ、「Apache Log4j 2.0 - アップグレードする価値はあるか?」: http://www.infoq.com/jp/news/2014/08/apache-log4j2 振り返るとLog4j 1.x系
今日、拙作findbugs-slf4jのGitHub Pageを作りました。このブログではこのプロジェクトについて日本語で紹介したいと思います。 概要 拙作PMDプラグインをもとに、2012年8月から実装を開始したfindbugsプラグイン SLF4J利用時のよくあるトラブルを未然に防ぎ、コードの品質を担保する 全自動なので、開発者各々の個性に影響されずに品質の底上を実現できる 既存の課題:SLF4Jの直感的ではないインタフェース SLF4J(Simple Logging Facade for Java)はJava向けに開発された、ログ用のFacadeです。開発者はSLF4Jが提供するインタフェースを利用することで、「高パフォーマンスなログ処理」と「利用者に好きなログ基盤を選ばせる自由」を提供することができます。例えばLog4j 2のような新しいログ基盤でも、プログラムがSLF4Jを使って
When Static References to Log objects can be used There are two very common patterns used with logging: public class Foo { private Log log = LogFactory.getLog(Foo.class); .... }and public class Foo { private static Log log = LogFactory.getLog(Foo.class); .... }The use of the static qualifier can be beneficial in some circumstances. However in others it is a very bad idea indeed, and can have unexp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く