为了在lambda中登录cloudwatch,必须使用以下log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2">
<Appenders>
<Lambda name="Lambda">
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
</PatternLayout>
</Lambda>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Lambda" />
</Root>
</Loggers>
</Configuration>
此外,以下物品必须在pom.xml中:
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.1.5.RELEASE</version>
</parent>
...
<dependency>
<artifactId>aws-lambda-java-log4j2</artifactId>
<groupId>com.amazonaws</groupId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.2</version>
</dependency>
当然,这些都不适合我。似乎Spring使用Logback,我尝试使用这些说明将其关闭。似乎什么都没用。
有什么建议吗?
明白了!我读了一篇帖子/咆哮,其中一个人注意到AWS使用了一个“5年前的jar”进行Cloudwatch/Lambda日志记录(现在找不到)。所以我找到了一个与1.2(log4j-1.2-api)兼容的Log4j2 jar并且它有效。我不得不在Spring中关闭Logback并激活Log4j2。下面应该会带你一路。
<dependency>
<artifactId>spring-boot-starter</artifactId>
<groupId>org.springframework.boot</groupId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<artifactId>aws-lambda-java-log4j2</artifactId>
<groupId>com.amazonaws</groupId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.11.2</version>
</dependency>
...
PS。您可能也需要解决这个问题:log4j2错误状态Logger无法识别的转换说明符
我使用的是,我想配置将不同的内容异步记录到不同的日志文件中。 我创建了log4j2文件,但是仍然使用Spring Boot默认日志记录。如何切换日志记录?
问题内容: 我正在一个springMVC项目中,其中用户身份验证基于Spring安全性。 这个想法是要拥有一个移动(android)应用程序,以便能够将某种数据发送到后端。 因此,在开始开发android之前,我决定使用cURL模拟登录表单的情况。 我们网站上的登录表单如下: 我使用以下命令: 但是我将获得登录页面,换句话说,我无法根据模拟情况通过用户身份验证。 只需注意:对于每一个请求,spri
在Spring Boot应用程序中,我试图使用Spring Security实现用户登录、注册和JWT功能。我还将使用MySQL并将用户保存到数据库中。 我已经搜索并找到了许多例子,但大多数都使用了不同的方法,我真的很困惑于最合适的方法还是有更好的最新方法。 这里有一些看起来最合适但实际上不确定的例子。那么,您能否看一下它们,或者给我一些适当的文章或示例的建议? https://www.bezko
我已经创建了react应用程序,并使用下面提供的okta示例使用okta登录。 https://developer.okta.com/code/react/okta_react/#add-an-openid-connect-client-in-okta 我可以通过输入凭据并点击登录按钮成功地从我的应用程序登录到应用程序。 但是,如果我登录到okta开发帐户,然后如果我导航到我的应用程序,我的应用程
我试图在应用程序启动时从配置服务器读取log4j2配置。 bootstrap.yml 应用程序似乎在启动期间得到了正确的配置,因为我看到了适当的日志级别。然而,自动配置似乎不起作用。当我更改日志记录器的日志级别时,它似乎没有在monitorInterval通过后从配置服务器读取更新的配置。我已将monitorInterval设置为10秒。根据文件,最小间隔应为5秒。如果我指向本地驱动器上的文件,而
我正在使用spring boot版本1.3.5(spring 4.2.6)开发一个应用程序。我使用log4j2版本2.4.1作为日志系统。当在sts(spring tool suite)上工作并在Embeded tomcat上执行时,日志可以正常工作(在控制台和文件上),但是当构建一个war文件并将其部署到外部Tomcat8上时,虽然创建了日志文件,但我的日志并没有出现在其中。 null 但这些解