gpt4 book ai didi

java - Spring Boot Logger 方面

转载 作者:IT老高 更新时间:2023-10-28 13:53:56 24 4
gpt4 key购买 nike

当访问来自特定包的类的方法时,我无法让我的日志记录方面记录信息。换句话说,发生“无”日志记录。我什至绝望并添加了 System.out.println 语句,但没有运气。

我所有的类都位于 org.my.package 包下,即 org.my.package.controllerorg.my.package。型号

这是我的应用程序类:

package org.my.package;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

@Configuration
@ComponentScan(basePackages = {"org.my.package.config"})
@EnableAutoConfiguration
@EnableAspectJAutoProxy
public class FirstWebAppApplication {

public static void main(String[] args) {
SpringApplication.run(FirstWebAppApplication.class, args);
}
}

这是我的配置类:

package org.my.package.config;

import org.deloitte.javatraining.daythree.utilities.MyLogger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

@Configuration
@EnableAspectJAutoProxy
@ComponentScan(basePackages = {"org.my.package.utilities"})
public class AssetConfig {

//-----------------------------------------------------------------------------------------------------------------------
@Bean
public MyLogger myLogger(){
return new MyLogger();
}
}

这是我的 Aspect 类:

package org.my.package.utilities;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class MyLogger {

/** Handle to the log file */
private final Log log = LogFactory.getLog(getClass());

public MyLogger () {}

@AfterReturning("execution(* org.my.package.*.*(..))")
public void logMethodAccessAfter(JoinPoint joinPoint) {
log.info("***** Completed: " + joinPoint.getSignature().getName() + " *****");
System.out.println("***** Completed: " + joinPoint.getSignature().getName() + " *****");
}

@Before("execution(* org.my.package.*.*(..))")
public void logMethodAccessBefore(JoinPoint joinPoint) {
log.info("***** Starting: " + joinPoint.getSignature().getName() + " *****");
System.out.println("***** Starting: " + joinPoint.getSignature().getName() + " *****");
}
}

这些是我的 Gradle 构建依赖项:

dependencies {
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("org.springframework.boot:spring-boot-starter-web")
compile('com.h2database:h2:1.3.156')
compile('javax.servlet:jstl:1.2')
compile('org.springframework.boot:spring-boot-starter-aop')
providedRuntime("org.apache.tomcat.embed:tomcat-embed-jasper")
testCompile("org.springframework.boot:spring-boot-starter-test")
}

我是否遗漏了某些内容或以其他方式错误配置了我的 Aspect 类?在与其他类似的 Stack Overflow 问题和在线教程进行验证后,我找不到任何错误。

请指教。

最佳答案

您的切入点,execution( * org.my.package.*.*(..)),仅匹配 org.my 中类的方法执行。包包不是子包。

你可能想要的是 execution( * org.my.package..*.*(..)) 注意 .. 而不是 .

关于java - Spring Boot Logger 方面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30335563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com