diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisor.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisor.java index f327c3b5504..d23388682e6 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisor.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisor.java @@ -40,6 +40,8 @@ public class SimpleLoggerAdvisor implements CallAroundAdvisor, StreamAroundAdvis private static final Logger logger = LoggerFactory.getLogger(SimpleLoggerAdvisor.class); + private int order; + public static final Function DEFAULT_REQUEST_TO_STRING = (request) -> { return request.toString(); }; @@ -53,13 +55,18 @@ public class SimpleLoggerAdvisor implements CallAroundAdvisor, StreamAroundAdvis private final Function responseToString; public SimpleLoggerAdvisor() { - this(DEFAULT_REQUEST_TO_STRING, DEFAULT_RESPONSE_TO_STRING); + this(DEFAULT_REQUEST_TO_STRING, DEFAULT_RESPONSE_TO_STRING, 0); + } + + public SimpleLoggerAdvisor(int order) { + this(DEFAULT_REQUEST_TO_STRING, DEFAULT_RESPONSE_TO_STRING, order); } public SimpleLoggerAdvisor(Function requestToString, - Function responseToString) { + Function responseToString, int order) { this.requestToString = requestToString; this.responseToString = responseToString; + this.order = order; } @Override @@ -69,7 +76,7 @@ public String getName() { @Override public int getOrder() { - return 0; + return this.order; } private AdvisedRequest before(AdvisedRequest request) { diff --git a/spring-ai-core/src/test/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisorTests.java b/spring-ai-core/src/test/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisorTests.java index c0ec6ce318b..ee864a22d70 100644 --- a/spring-ai-core/src/test/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisorTests.java +++ b/spring-ai-core/src/test/java/org/springframework/ai/chat/client/advisor/SimpleLoggerAdvisorTests.java @@ -89,6 +89,14 @@ public void streamLogging(CapturedOutput output) { validate(content, output); } + @Test + public void loggingOrder() { + + var loggerAdvisor = new SimpleLoggerAdvisor(1); + + assertThat(loggerAdvisor.getOrder()).isEqualTo(1); + } + private void validate(String content, CapturedOutput output) { assertThat(content).isEqualTo("Your answer is ZXY");