package tech.powerjob.worker.log;
|
|
import org.apache.commons.lang3.StringUtils;
|
import tech.powerjob.common.enums.LogType;
|
import tech.powerjob.common.model.LogConfig;
|
import tech.powerjob.common.serialize.JsonUtils;
|
import tech.powerjob.worker.common.WorkerRuntime;
|
import tech.powerjob.worker.log.impl.*;
|
|
/**
|
* OmsLoggerFactory
|
*
|
* @author tjq
|
* @since 2022/9/17
|
*/
|
public class OmsLoggerFactory {
|
|
public static OmsLogger build(Long instanceId, String logConfig, WorkerRuntime workerRuntime) {
|
LogConfig cfg;
|
if (StringUtils.isEmpty(logConfig)) {
|
cfg = new LogConfig();
|
} else {
|
try {
|
cfg = JsonUtils.parseObject(logConfig, LogConfig.class);
|
} catch (Exception ignore) {
|
cfg = new LogConfig();
|
}
|
}
|
|
switch (LogType.of(cfg.getType())) {
|
case LOCAL:
|
return new OmsLocalLogger(cfg);
|
case STDOUT:
|
return new OmsStdOutLogger(cfg);
|
case NULL:
|
return new OmsNullLogger();
|
case LOCAL_AND_ONLINE:
|
return new OmsServerAndLocalLogger(cfg, instanceId, workerRuntime.getOmsLogHandler());
|
default:
|
return new OmsServerLogger(cfg, instanceId, workerRuntime.getOmsLogHandler());
|
}
|
}
|
}
|