1 package org.simantics.logging;
3 import java.util.Objects;
5 import org.slf4j.Logger;
8 * @author Tuukka Lehtonen
11 public class LoggerLevel implements Comparable<LoggerLevel> {
13 private final Logger logger;
14 private final String originalLevel;
15 private String loggerName;
18 public LoggerLevel(Logger logger, String level) {
19 Objects.requireNonNull(logger, "logger");
20 Objects.requireNonNull(level, "level");
22 this.originalLevel = level;
23 this.loggerName = logger.getName();
27 public LoggerLevel(String loggerName, String level) {
28 Objects.requireNonNull(loggerName, "loggerName");
29 Objects.requireNonNull(level, "level");
31 this.originalLevel = null;
32 this.loggerName = loggerName;
40 public String getName() {
44 public LoggerLevel setName(String name) {
46 throw new UnsupportedOperationException("Cannot rename already created logger " + loggerName + " to " + name);
47 Objects.requireNonNull(name, "name");
48 this.loggerName = name;
52 public String getLevel() {
56 public LoggerLevel setLevel(String level) {
57 Objects.requireNonNull(level, "level");
62 public boolean levelChanged() {
63 return !Objects.equals(originalLevel, level);
66 public boolean isLoggerDefined() {
67 return logger != null;
71 public int hashCode() {
72 return Objects.hash(level, logger, loggerName);
76 public boolean equals(Object obj) {
81 if (getClass() != obj.getClass())
83 LoggerLevel other = (LoggerLevel) obj;
84 return Objects.equals(level, other.level)
85 && Objects.equals(logger, other.logger)
86 && Objects.equals(loggerName, other.loggerName);
90 public int compareTo(LoggerLevel o) {
91 return loggerName.compareToIgnoreCase(o.loggerName);