5

我厌倦了添加手动日志来调试我编写的每个方法。

我开始了解jcabi@Loggable的注释,但未能成功实施,非常感谢您的帮助。

下面是我尝试过的代码。

import com.jcabi.aspects.Loggable;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Jcabi {

    @Loggable
    private static String checkJcabi(String stringToPrint) {
        log.info("Print Successfull");
        return stringToPrint;
    }

    public static void main(String[] args) {
        checkJcabi("Hello World!");
    }

}

IDE 控制台打印以下内容:

[main] INFO com.amazon.optimus.cpamutil.utils.Jcabi - Print Successfull

这是log.info()我在方法中添加的日志,并且没有@Loggable像这篇文章中提到的这样(如下)注释的日志

[INFO] com.example.Foo #power(2, 10): 1024 in 12μs
[INFO] com.example.Foo #power(3, 3): 27 in 4μs

以下是我使用的依赖包:

JCabiAspects = 1.0;
AspectJ = 6.0;
Slf4j = 1.7;
Slf4j_Simple = 1.7;

如果您需要更多详细信息,请告诉我。谢谢。

4

2 回答 2

0

您需要进行二元编织。在您链接的帖子中,它是这样说的,并且它还说您可以使用 jcabi-maven-plugin 为您进行编织,因为您正在使用 maven。

只需将一些依赖项添加到您的类路径并配置 jcabi-maven-plugin 以进行方面编织(在 Maven Central 中获取它们的最新版本)

<project>
<dependencies>
    <dependency>
      <groupId>com.jcabi</groupId>
      <artifactId>jcabi-aspects</artifactId>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>com.jcabi</groupId>
        <artifactId>jcabi-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>ajc</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

如果你正在使用 gradle,你可以使用这个gradle-aspectj-binary插件

于 2021-05-06T02:45:13.577 回答
0

您需要对二进制文件进行编织,如下所述:http: //aspects.jcabi.com/example-weaving.html

于 2018-03-15T13:30:27.897 回答