A kind of Logger
Java
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
README.md
pom.xml

README.md

Logger

A kind of Logger for practice

LogManager

  • シングルトン。常に同じインスタンスを返す

LoggerContext

  • 名前をつけて複数のLoggerContextを生成することができる

  • LogManager以外のロギングに必要なクラスはここから作成される

  • LogManagerからLoggerContextの呼び出しは弱参照で呼び出す

TODO

  • (クラスローダを作成してそれからLoggerContextを呼び出すようにする)

Configuration

  • それぞれのLoggerConfigの設定を持つ

Logger

  • LoggerConfigを持つ

LoggerConfig

  • Appenderを持つ

  • LogLevelを持つ

RootLoggerConfig

  • 固定

  • LogLevelはERROR

How to use


package com.plugram.logger;

import static com.plugram.logger.ConfigCommands.*;

import com.plugram.logger.appender.ConsoleAppender;
import com.plugram.logger.config.LogLevel;

public class Main {

	static LoggerContext loggerContext = new LoggerFactory(){{
		addLoggerConfig("hoge.aaa.bbb", LogLevel.DEBUG, new ConsoleAppender());
		addLoggerConfig("hoge.bbb.ccc", LogLevel.WARN, new ConsoleAppender());
		addLoggerConfig("hoge.bbb.ccc", LogLevel.WARN, new ConsoleAppender());
		addLoggerConfig("com.plugram.logger", LogLevel.WARN, new ConsoleAppender());
		addLoggerConfig("com.plugram.logger.Main", LogLevel.ERROR, new ConsoleAppender());
	}}.getLoggerContext();
	
	static Logger logger = loggerContext.getLogger(Main.class);
	
	public static void main(String[] args){
		logger.trace("Trace message"); // Do not display
		logger.debug("Debug message"); // Do not display
		logger.info("Info message");  // Do not display
		logger.warn("Warn message");  // Do not display
		logger.error("Error message");
		logger.fatal("Fatal message");
	}
}