package org.skywalking.apm.logging; /** * LogManager is the {@link LogResolver} implementation manager. By using {@link LogResolver}, {@link * LogManager#getLogger(Class)} returns a {@link ILog} implementation. This module use this class as the main entrance, * and block the implementation detail about log-component. In different modules, like server or sniffer, it will use * different implementations. <p> If no {@link LogResolver} is registered, return {@link NoopLogger#INSTANCE} to avoid * {@link NullPointerException}. If {@link LogManager#setLogResolver(LogResolver)} is called twice, the second will * override the first without any warning or exception. <p> Created by xin on 2016/11/10. */ public class LogManager { private static LogResolver RESOLVER; public static void setLogResolver(LogResolver resolver) { LogManager.RESOLVER = resolver; } public static ILog getLogger(Class<?> clazz) { if (RESOLVER == null) { return NoopLogger.INSTANCE; } return LogManager.RESOLVER.getLogger(clazz); } }