LevelDescriptor.java
/*
 * The coLAB project
 * Copyright (C) 2021-2023 AlbaSim, MEI, HEIG-VD, HES-SO
 *
 * Licensed under the MIT License
 */
package ch.colabproject.colab.api.controller.monitoring;
import ch.colabproject.colab.generator.model.annotations.ExtractJavaDoc;
import ch.qos.logback.classic.Logger;
/**
 * Describe the current level of a logger
 *
 * @author maxence
 */
@ExtractJavaDoc
public class LevelDescriptor {
    /**
     * Explicit level of this logger. May be null.
     */
    private String level;
    /**
     * Effective level of this logger
     */
    private String effectiveLevel;
    /**
     * Get the value of effectiveLevel
     *
     * @return the value of effectiveLevel
     */
    public String getEffectiveLevel() {
        return effectiveLevel;
    }
    /**
     * Set the value of effectiveLevel
     *
     * @param effectiveLevel new value of effectiveLevel
     */
    public void setEffectiveLevel(String effectiveLevel) {
        this.effectiveLevel = effectiveLevel;
    }
    /**
     * Get the value of level
     *
     * @return the value of level
     */
    public String getLevel() {
        return level;
    }
    /**
     * Set the value of level
     *
     * @param level new value of level
     */
    public void setLevel(String level) {
        this.level = level;
    }
    /**
     * Extract level descriptor from a logger
     *
     * @param logger the logger
     *
     * @return the logger LevelDescriptor
     */
    public static LevelDescriptor build(Logger logger) {
        LevelDescriptor ld = new LevelDescriptor();
        String level = logger.getLevel() != null ? logger.getLevel().levelStr : null;
        ld.setEffectiveLevel(logger.getEffectiveLevel().levelStr);
        ld.setLevel(level);
        return ld;
    }
}