К сожалению, когда я пытаюсь регистрировать свои сообщения, log4j2 не делает этого. Это не работает, и вместо этого он использует ведение журнала Spring по умолчанию.
Это мой аспектный класс ведения журнала, в котором я пытаюсь регистрировать сообщения: LoggingAspect.java
Код: Выделить всё
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Aspect
@Component
public class LoggingAspect {
@Around("com.obs.dqsc.api.config.AspectConfig.businessService() || com.obs.dqsc.api.config.AspectConfig.repositoryOperations()")
public Object logMethod(final ProceedingJoinPoint joinPoint)
throws Throwable {
final Class targetClass = joinPoint.getTarget().getClass();
final Logger logger = LoggerFactory.getLogger(targetClass);
try {
final String className = targetClass.getSimpleName();
logger.debug(getPreMessage(joinPoint, className));
final StopWatch stopWatch = new StopWatch();
stopWatch.start();
final Object retVal = joinPoint.proceed();
stopWatch.stop();
logger.debug(getPostMessage(joinPoint, className, stopWatch.getTotalTimeMillis()));
return retVal;
} catch (final Throwable ex) {
logger.error(getErrorMessage(ex), ex);
throw ex;
}
}
private static String getPreMessage(final JoinPoint joinPoint, final String className) {
final StringBuilder builder = new StringBuilder()
.append("Entered in ").append(className).append(".")
.append(joinPoint.getSignature().getName())
.append("(");
appendTo(builder, joinPoint);
return builder
.append(")")
.toString();
}
private static String getPostMessage(final JoinPoint joinPoint, final String className, final long millis) {
return "Exit from " + className + "." +
joinPoint.getSignature().getName() +
"(..); Execution time: " +
millis +
" ms;";
}
private static String getErrorMessage(final Throwable ex) {
return ex.getMessage();
}
private static void appendTo(final StringBuilder builder, final JoinPoint joinPoint) {
final Object[] args = joinPoint.getArgs();
for (int i = 0; i < args.length; i++) {
if (i != 0) {
builder.append(", ");
}
builder.append(args[i]);
}
}
}
Код: Выделить всё
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.5.5
com.obs.dqsc
dqsc-api
0.0.1-SNAPSHOT
api
Demo project for Spring Boot
16
org.springframework.boot
spring-boot-configuration-processor
true
org.springframework.boot
spring-boot-starter-data-mongodb
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-logging
org.springframework.boot
spring-boot-starter-log4j2
org.springframework.boot
spring-boot-starter-aop
org.aspectj
aspectjweaver
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.apache.poi
poi
5.0.0
org.apache.poi
poi-ooxml
5.0.0
api-0.0.1-SNAPSHOT
org.springframework.boot
spring-boot-maven-plugin
${project.parent.version}
org.projectlombok
lombok
Код: Выделить всё
мой файл application.properties не содержит ничего, связанного с log4j,
а также мой log4j2. xml находится внутри src/main/resources
Подробнее здесь: https://stackoverflow.com/questions/699 ... log4j2-xml
Мобильная версия