如何为Azure function App slf4j写入日志?

问题描述 投票:0回答:1

我已经使用 Spring Cloud Functions 实现了 Azure Function App。我使用 lombok 注释 @Slf4j 来记录消息,但我无法在 azure 门户中看到我的日志文件。任何人都可以帮助我,我应该如何为此应用程序编写日志

我尝试过 sl4j 并希望在上述文件中打印日志。

azure-functions slf4j spring-cloud-function
1个回答
-1
投票

有关 Azure Function 的信息会自动记录到应用程序洞察中。但要将有关您的应用程序的信息记录到 App Insight,您需要完成 App Insight 的设置。

https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-spring-boot

pom.xml

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version>3.4.18</version>
</dependency>

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version>3.4.18</version>
</dependency>

配置applicationinsights.json

{
  "connectionString":"InstrumentationKey=54ba6f5c-0590-xx;IngestionEndpoint=https://centralus-0.in.applicationinsights.azure.com/;LiveEndpoint=https://centralus.livediagnostics.monitor.azure.com/"
}

第一行是使用 ApplicationInsights.attach();

@SpringBootApplication
public class Application {
    public static void main(String[] args) throws Exception {

        ApplicationInsights.attach();
        SpringApplication.run(Config.class, args);
    }
}

用于记录您的申请信息:

@Slf4j
@Component
public class EchoHandler {

    @Autowired
    private Function<String, String> echo;

    @FunctionName("echo")
    public String execute(@HttpTrigger(name = "req", methods = {HttpMethod.GET,
            HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
        ExecutionContext context) {

        String input = request.getBody().get();

        log.error("Method echo " + input);
        
        return echo.apply(input);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.