Java原生Loggerとlog 4 jの基礎の総括と実例
この間出張して、帰ってきて新しいプロジェクトグループに変えて、JavaSwingツールを開発しました.ブログは続きます.
リンク:http://blog.csdn.net/jediael_lu/article/details/32098879
JAvaはロガーを持参
Loggerには、レコーダ(Logger)、プロセッサ(Handler)、フォーマット(Formatter)の3つの重要な概念があります. Logger:ログの記録、ログレベルの設定など. Handler:出力位置などを決定します. Fomatter:記録中の情報を自分の意思でフォーマットします.
1.ロガー関連
オブジェクトの作成
名前を付ける
原則として任意に名前を付けることができますが、実際にはパッケージ名と類似しており、階層があります.
レベル SEVERE WARNING INFO CONFIG FINE FINER FINEST
ALLとOFFを使用して、すべてのレコードをオンまたはオフにすることができます.
デフォルトでは上位3レベル、SEVERE、WARNING、INFOのみが記録されます.
プロファイルを編集することで、ログシステムのさまざまなプロパティを変更できます.デフォルトではjre/lib/loggingにファイルが存在します.properties
FINEレベルのメッセージをコンソールで表示するには、次のように設定します.
プロファイルを変更したくない場合は、独自のプロセッサをインストールします.
2.Handler相関
loggerにHandlerを追加して、異なる形式の出力を行うことができます.
ConsoleHandler:コンソールに出力
デフォルトではinfoレベル以上のlogがコンソールに出力されます.
ログ・レベルを変更し、プロファイルを通過したくない場合は、ConsoleHandlerを作成して出力レベルを変更できます(上記の例を参照).
FileHandler:ファイルに出力
ファイル形式が指定されていない場合、ログ出力形式はXMLです.
SocketHandler:ネットワークに出力
3.Formatter関連
log4j
明日は続きます...眠いです.
リンク:http://blog.csdn.net/jediael_lu/article/details/32098879
JAvaはロガーを持参
Loggerには、レコーダ(Logger)、プロセッサ(Handler)、フォーマット(Formatter)の3つの重要な概念があります.
1.ロガー関連
オブジェクトの作成
static Logger getLogger(String name);
static Logger getLogger(String name,String resourceBundleName);
//name ,
//resourceBundleName
名前を付ける
原則として任意に名前を付けることができますが、実際にはパッケージ名と類似しており、階層があります.
レベル
ALLとOFFを使用して、すべてのレコードをオンまたはオフにすることができます.
デフォルトでは上位3レベル、SEVERE、WARNING、INFOのみが記録されます.
プロファイルを編集することで、ログシステムのさまざまなプロパティを変更できます.デフォルトではjre/lib/loggingにファイルが存在します.properties
FINEレベルのメッセージをコンソールで表示するには、次のように設定します.
java.util.logging.ConsoleHandler.level=FINE
プロファイルを変更したくない場合は、独自のプロセッサをインストールします.
Logger logger = Logger.getLogger("com.mycompany.myapp");
logger.setLevel(Level.FINE);
logger.setUseParentHandlers(false);
Handler handler = new ConsoleHandler();
handler.setLevel(Level.FINE);
logger.addHandler(handler);
2.Handler相関
loggerにHandlerを追加して、異なる形式の出力を行うことができます.
ConsoleHandler:コンソールに出力
デフォルトではinfoレベル以上のlogがコンソールに出力されます.
ログ・レベルを変更し、プロファイルを通過したくない場合は、ConsoleHandlerを作成して出力レベルを変更できます(上記の例を参照).
FileHandler:ファイルに出力
Logger logger = Logger.getLogger("test");
FileHandler fileHandler = new FileHandler("d:\\logtest.log");
logger.setLevel(Level.FINE);
logger.setUseParentHandlers(false);
//
fileHandler.setLevel(Level.FINE);
logger.addHandler(fileHandler);
logger.info("start log");
logger.fine("fine?");
ファイル形式が指定されていない場合、ログ出力形式はXMLです.
SocketHandler:ネットワークに出力
3.Formatter関連
public class Test {
public static void main(String[] args) throws IOException {
Logger logger = Logger.getLogger("test");
FileHandler fileHandler = new FileHandler("d:\\logtest.log");
logger.setLevel(Level.FINE);
logger.setUseParentHandlers(false);
fileHandler.setLevel(Level.FINE);
fileHandler.setFormatter(new MyLogHander());
logger.addHandler(fileHandler);
logger.info("start log");
logger.fine("fine?");
}
}
class MyLogHander extends Formatter {
@Override
public String format(LogRecord record) {
formatMessage(record);
return record.getLevel() + ":" + record.getMessage()+"
";
}
}
log4j
明日は続きます...眠いです.