package com.epam.cisen.core.api.core; import java.io.IOException; import java.util.Hashtable; import java.util.Map; import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; import org.osgi.service.cm.Configuration; import org.osgi.service.cm.ConfigurationAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Component @Service(LogConfigManager.class) public class LogConfigManager { private static final Logger LOGGER = LoggerFactory.getLogger(LogConfigManager.class); @Reference private ConfigurationAdmin configurationAdmin; @Activate public void start(Map<String, Object> properties) { try { final Configuration configuration = configurationAdmin.getConfiguration("org.ops4j.pax.logging", null); final Hashtable<String, Object> log4jProps = new Hashtable<>(); log4jProps.put("log4j.rootLogger", "ALL, file"); log4jProps.put("log4j.appender.file", "org.apache.log4j.RollingFileAppender"); log4jProps.put("log4j.appender.file.File", "../../../logs/cisen.log"); log4jProps.put("log4j.appender.file.MaxFileSize", "1MB"); log4jProps.put("log4j.appender.file.MaxBackupIndex", "1"); log4jProps.put("log4j.appender.file.layout", "org.apache.log4j.PatternLayout"); log4jProps.put("log4j.appender.file.layout.ConversionPattern", "%d{ABSOLUTE} %5p %c{1}:%L - %m%n"); configuration.update(log4jProps); } catch (IOException ex) { LOGGER.error("Fail to load configuration.", ex); } } }