82 lines
2.9 KiB
Java
82 lines
2.9 KiB
Java
package com.stackify.services;
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.Month;
|
|
|
|
import org.apache.logging.log4j.Level;
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
import org.apache.logging.log4j.core.Appender;
|
|
import org.apache.logging.log4j.core.LoggerContext;
|
|
import org.apache.logging.log4j.core.appender.FileAppender;
|
|
import org.apache.logging.log4j.core.config.AppenderRef;
|
|
import org.apache.logging.log4j.core.config.Configuration;
|
|
import org.apache.logging.log4j.core.config.LoggerConfig;
|
|
import org.apache.logging.log4j.core.layout.PatternLayout;
|
|
import org.junit.Test;
|
|
|
|
import com.stackify.models.User;
|
|
import com.stackify.services.MyService;
|
|
|
|
public class MyServiceUnitTest {
|
|
|
|
private static final Logger logger = LogManager.getLogger(MyServiceUnitTest.class);
|
|
|
|
@Test
|
|
public void testService() {
|
|
MyService myService = new MyService();
|
|
User user = new User("John", "john@yahoo.com");
|
|
user.setDateOfBirth(LocalDate.of(1980, Month.APRIL, 20));
|
|
logger.info("Age of user {} is {}", () -> user.getName(), () -> myService.calculateUserAge(user));
|
|
}
|
|
|
|
@Test
|
|
public void testColoredLogger() {
|
|
logger.fatal("Fatal level message");
|
|
logger.error("Error level message");
|
|
logger.warn("Warn level message");
|
|
logger.info("Info level message");
|
|
logger.debug("Debug level message");
|
|
}
|
|
|
|
@Test
|
|
public void testRollingFileAppender() {
|
|
Logger rfLogger = LogManager.getLogger("RollingFileLogger");
|
|
rfLogger.info("Json Message 1");
|
|
rfLogger.info("Json Message 2");
|
|
}
|
|
|
|
@Test
|
|
public void testProgrammaticConfig() {
|
|
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
|
Configuration config = ctx.getConfiguration();
|
|
|
|
PatternLayout layout = PatternLayout.newBuilder().withConfiguration(config).withPattern("%d{HH:mm:ss.SSS} %level %msg%n").build();
|
|
|
|
Appender appender = FileAppender.newBuilder().setConfiguration(config).withName("programmaticFileAppender").withLayout(layout).withFileName("java.log").build();
|
|
appender.start();
|
|
config.addAppender(appender);
|
|
AppenderRef ref = AppenderRef.createAppenderRef("programmaticFileAppender", null, null);
|
|
AppenderRef[] refs = new AppenderRef[] { ref };
|
|
|
|
LoggerConfig loggerConfig = LoggerConfig.createLogger(false, Level.INFO, "programmaticLogger", "true", refs, null, config, null);
|
|
|
|
loggerConfig.addAppender(appender, null, null);
|
|
config.addLogger("programmaticLogger", loggerConfig);
|
|
ctx.updateLoggers();
|
|
|
|
Logger pLogger = LogManager.getLogger("programmaticLogger");
|
|
pLogger.info("Programmatic Logger Message");
|
|
}
|
|
|
|
@Test
|
|
public void testCustomLevel() {
|
|
Level myLevel = Level.forName("NEW_LEVEL", 350);
|
|
logger.log(myLevel, "Custom Level Message");
|
|
|
|
logger.log(Level.getLevel("NEW_XML_LEVEL"), "Custom XML Level Message");
|
|
|
|
}
|
|
|
|
}
|