public class Logger {
private String className;
public Logger(String className) {
this.className = className;
}
public void info(String message) {
log("INFO", message);
}
public void warn(String message) {
log("WARN", message);
}
public void error(String message) {
log("ERROR", message);
}
private void log(String level, String message) {
System.out.println(className + " - " + level + ": " + message);
}
}
public class Main {
private static Logger logger = new Logger(Main.class.getName());
public static void main(String[] args) {
logger.info("This is an informational message.");
logger.warn("This is a warning message.");
logger.error("This is an error message.");
}
}
com.example.Main - INFO: This is an informational message.
com.example.Main - WARN: This is a warning message.
com.example.Main - ERROR: This is an error message.
properties
# log.properties
log.level=INFO
log.target=CONSOLE
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Logger {
private String className;
private String logLevel;
private String logTarget;
public Logger(String className) {
this.className = className;
loadConfig();
}
public void info(String message) {
if (isLogLevelEnabled("INFO")) {
log("INFO", message);
}
}
public void warn(String message) {
if (isLogLevelEnabled("WARN")) {
log("WARN", message);
}
}
public void error(String message) {
if (isLogLevelEnabled("ERROR")) {
log("ERROR", message);
}
}
private void log(String level, String message) {
String logMessage = className + " - " + level + ": " + message;
if (logTarget.equals("CONSOLE")) {
System.out.println(logMessage);
} else if (logTarget.equals("FILE")) {
}
}
private void loadConfig() {
try (InputStream inputStream = getClass().getClassLoader().getResourceAsStream("log.properties")) {
Properties properties = new Properties();
properties.load(inputStream);
logLevel = properties.getProperty("log.level");
logTarget = properties.getProperty("log.target");
} catch (IOException e) {
e.printStackTrace();
}
}
private boolean isLogLevelEnabled(String level) {
}
}