問題タブ [perf4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - log4j2.xml にカスタム アペンダーを追加する方法
perf4j を使用したいアプリケーションがあります。log4j2.xml の構文が変更されていると思います。ここで、カスタム appnder クラスのクラス属性を宣言する方法が見つかりませんでした。私の電流log4j2.xml
は
今、私はいくつかのアペンダーを追加したいと思います
このアペンダーを log4j2.xml に追加する方法
java - StopWatch is Working fine but failing to log when @Profiled annotation is used
I dont know much about the per4j since i am new to it, i am trying to add perf4j timing into my maven project.I have created the project setup by looking at some examples.
This is my log4j.xml
file
and this is my aom.xml file
When i ran a sample main class using StopWatch
i am getting the logs files logged with timing details but when i use @Profiled
annotation it is failing to create the timer logs.Its creating new log file but the file will be empty.
My sample class looks like this:
Can anyone please tell me what i am doing wrong to use the @Profiled
anotation, everything goes smoothly when i use StopWatch
.
intellij-idea - intellij で perf4j プロファイル アノテーションを有効にする
intellij で perf4j アノテーションを有効にしようとしていますが、AspectJ を正しく構成するのに苦労しています。より具体的には、ログ ファイルは正しく作成されますが、注釈付きのメソッドからのデータが不足しています。
これらは、関連する構成の抜粋です。
logback.xml
aop.xml
最後に、関連するテスト メソッドが @Profiled アノテーションでタグ付けされます。これは、aop.xml で定義されたパッケージの一部です。
この構成により、ログ ファイルが生成されます (これは、logback.xml が正しく構成されていることを示唆していますが、ヘッダーのみが含まれており、タグ付けされたメソッドからの統計は含まれていません。
私が持っている主な質問は、Intellij 内で AspectJ 構成をどこに置くべきかということです。src フォルダーに手動で作成された META-INF フォルダーの下に aop.xml を含めましたが、これが AspectJ によってまったく検出されるかどうかはわかりません。
前もって感謝します
アップデート
最初の投稿以来、これに関していくらかの進歩を遂げました。具体的には 2 つの変更を導入しました。aop 構成は、構成の詳細をログに記録し、プロファイリングされているメソッドについても言及しているため、現在ピックアップされています。問題は、プロファイリングされているスレッドがクラッシュすることです。例外はログに記録されませんが、デバッグを介して、org.aspectj.runtime をインスタンス化しようとすると、org.aspectj.runtime.reflect.Factory の ClassNotFoundException に関連しているように見えます。 Reflect.JoinPointImpl.
問題を特定するために、aspectJ の Maven インポートをすべて削除し、インストール パッケージによって提供される jar を使用しましたが、問題は解決しません。また、アプリケーションがログなしでクラッシュするという事実により、問題の追跡が難しくなります。
アップデート
明確にするために:
- ウェイバックリンクのマニュアルを含め、これについて詳しく読んだ後(ありがとう)、ロード時/コンパイル時のアプローチを混同していることに気付きました。それ以来、ガイドに記載されているように両方の方法を試しましたが、以前の更新で説明したのと同じ結果になりました。
- 上記のように、aspectj ウィーバー オプション (-javaagent) を使用してアプリケーションを起動します。
- 上記のように、ビルドはIDE経由で行われます。現時点では、Mavenからaspectj / perf4jの依存関係を削除し、ローカルjarにリンクしています
- 前述のように、aop.xml は更新で述べたように取得され、エラーや警告はなく、織り方の確認のみが行われます
spring - 「projectingArgumentResolverBeanPostProcessor」という名前の Bean の作成中にエラーが発生しました: @annotation ポイントカット式は Java 5 でのみサポートされています
私は得ています:
クラスパス リソース [org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class] で定義された「projectingArgumentResolverBeanPostProcessor」という名前の Bean の作成中にエラーが発生しました: Bean の初期化に失敗しました。ネストされた例外は java.lang.IllegalArgumentException: エラー @annotation ポイントカット式は、org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) で Java 5 準拠レベル以上でのみサポートされます ~[spring-基本的な spring-boot アプリに per4j を追加しようとすると、beans-5.0.9.RELEASE.jar:5.0.9.RELEASE] エラーが発生する
そのため、perf4j ログをスプリング ブート アプリに追加しようとしています。ここでは、Java 8 を Maven に設定しました。
私のローカルでも、Java 8 しかインストールされていません。perf4j に変更を加えた後にアプリケーションを実行すると、上記のエラーがスローされます。エラーを深く掘り下げると、次のことがわかりました。
原因: java.lang.IllegalArgumentException: エラー @annotation ポイントカット式は、Java 5 準拠レベル以上でのみサポートされています
同様の問題がすでにあります 'projectingArgumentResolverBeanPostProcessor' という名前の Bean を作成中にエラーが発生 しましたが、解決策はありません。
詳細なエラーは次のとおりです。
org.springframework.beans.factory.BeanCreationException: クラスパス リソース [org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class] で定義された名前 'projectingArgumentResolverBeanPostProcessor' を持つ Bean の作成中にエラーが発生しました: Bean の初期化に失敗しました。
ネストされた例外は java.lang.IllegalArgumentException: エラー @annotation ポイントカット式は、org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581)で Java 5 準拠レベル以上でのみサポートされます~[spring- beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) ~[spring-beans-5.0.9.RELEASE.jar :5.0.9.RELEASE]
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) で ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.beans で.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:315) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) ~[春-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:236) で ~[spring-context-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.context.support.AbstractApplicationContext で。 registerBeanPostProcessors(AbstractApplicationContext.java:710) ~[spring-context-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:535) ~[spring -context-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.5. RELEASE.jar:2.0.5.RELEASE]
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780) で [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java) で:412) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:333) [spring-boot-2.0.5.RELEASE. jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot .SpringApplication.run(SpringApplication.java:1265) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at com.calamp.connect.ae.Application.main(Application.java:29) [classes/:na] 原因: java.lang.IllegalArgumentException: エラー @annotation ポイントカット式は、Java 5 準拠レベル以上でのみサポートされます
org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:317) で ~[aspectjtools-1.6.2.jar:na]
org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:227) で~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.aspectj.AspectJExpressionPointcut.obtainPointcutExpression(AspectJExpressionPointcut.java:198) ~[spring-aop-5.0.9.RELEASE] .jar:5.0.9.RELEASE]
org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:177) で ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE] org.springframework.aop.support.AopUtils で。 canApply(AopUtils.java:225) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.aop.support.AopUtils.canApply(AopUtils.java:288) ~[spring -aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:320) ~[spring-aop-5.0.9.RELEASE.jar: 5.0.9.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:126) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:95) で ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.aop.framework で。 autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:76) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java) :352) ~[spring-aop-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:304) ~[spring-aop- 5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:431) で ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
org.springframework.beans.factory で。 support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1703) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java :573) ~[spring-beans-5.0.9.RELEASE.jar:5.0.9.RELEASE]
... 15個の共通フレームを省略
perf4j ロギングを pom.xml に追加するために、以下の依存関係を追加しました。
エラーは発生せず、アプリは実行されるはずです。