All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nutz.spring.boot.log.NutzLogAutoConfiguration Maven / Gradle / Ivy

There is a newer version: 3.4.1
Show newest version
package org.nutz.spring.boot.log;

import org.nutz.lang.Strings;
import org.nutz.log.LogAdapter;
import org.nutz.log.Logs;
import org.nutz.log.impl.Log4jLogAdapter;
import org.nutz.log.impl.Slf4jLogAdapter;
import org.nutz.log.impl.SystemLogAdapter;
import org.nutz.plugin.SimplePluginManager;
import org.nutz.spring.boot.log.NutzLogConfigurationProperties.Type;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;

/**
 * 
 * @author Kerbores([email protected])
 *
 */
@AutoConfiguration
@EnableConfigurationProperties(NutzLogConfigurationProperties.class)
@RequiredArgsConstructor
public class NutzLogAutoConfiguration {

    private final NutzLogConfigurationProperties config;

    @PostConstruct
    public void init() {
        /**
         * 非自定义
         */
        if (config.getType() != Type.CUSTOMER) {
            Logs.setAdapter(new SimplePluginManager(
                                                                config.getType().getClazz(),
                                                                Slf4jLogAdapter.class,
                                                                Log4jLogAdapter.class,
                                                                SystemLogAdapter.class).get());
        } else if (Strings.isNotBlank(config.getCustomerLogAdapter())) {// 自定义且设置了适配器
            String packageName = Logs.class.getPackage().getName() + ".impl.";
            Logs.setAdapter(new SimplePluginManager(
                                                                config.getCustomerLogAdapter(),
                                                                packageName + "Slf4jLogAdapter",
                                                                packageName + "Log4jLogAdapter",
                                                                packageName + "SystemLogAdapter").get());
        } else {// 默认实现
            String packageName = Logs.class.getPackage().getName() + ".impl.";
            Logs.setAdapter(new SimplePluginManager(
                                                                packageName
                                                                + "CustomLogAdapter",
                                                                packageName + "Slf4jLogAdapter",
                                                                packageName + "Log4jLogAdapter",
                                                                packageName + "SystemLogAdapter").get());
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy