Spring boot + slf4j + log4j + 类 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为类
我有Spring boot 2.3.1 pom.xml 我有Spring boot 2.3.1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>logger</groupId> <artifactId>logger</artifactId> <version>0.0.1-SNAPSHOT</version> <name>logger</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> <lombok.version>1.18.12</lombok.version> <log4j.version>1.2.17</log4j.version> <slf4j.version>1.7.30</slf4j.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 班级 @Slf4j @SpringBootApplication public class LoggerApplication { public static void main(String[] args) { log.info("++++++++++++++++++++++++TEST+++++++++++++++++++++++++++++"); SpringApplication.run(LoggerApplication.class, args); } } 应用程序.属性 logging.config=classpath:log4j.properties log4j.properties log4j.rootLogger=INFO, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n 我尝试寻找解决方案,查看论坛上的类似主题,尝试各种排除依赖项的选项。 线程“main”中的异常 java.lang.ClassCastException:类 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为类 org.apache.logging.log4j.core.LoggerContext (org.apache.logging.slf4j.SLF4JLoggerContext 和 org.apache.logging.log4j.core.LoggerContext 位于未命名模块中 加载器“应用程序”)位于 我还尝试排除一些依赖项 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> 但又出现错误,但现在无法再格式化日志了。 2021-01-13 19:12:15,881 信息 - ++++++++++++++++++++++++测试+++++++++++++++++++++++++++++++ 错误 StatusLogger 无法识别的格式说明符 [d] 错误 StatusLogger 无法识别的转换说明符 [d] 从转换模式中的位置 16 开始。 错误 StatusLogger 无法识别的格式说明符 [线程] 错误 StatusLogger 无法识别的转换说明符 [线程] 从转换模式中的位置 25 开始。 错误 StatusLogger 无法识别的格式说明符 [级别] 错误 StatusLogger 无法识别的转换说明符 [level] 从转换模式中的位置 35 开始。 ... 错误 StatusLogger 无法识别的格式说明符 [n] 错误 StatusLogger 无法识别的转换说明符 [n] 从转换模式中的位置 56 开始。 警告:不支持 sun.reflect.Reflection.getCallerClass。这会影响性能。 任何人都可以有任何想法如何解决它吗? 我找到了解决这个问题的方法。事实证明,问题出在其中一个私有库(elastik 的附加程序)的冲突上。 我执行了命令: mvn dependency:tree 然后找到传递依赖项,并将它们排除在所有类的路径上,以排除日志记录所需的库冲突。 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>log4j-to-slf4j</artifactId> <groupId>org.apache.logging.log4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <artifactId>springfox-boot-starter</artifactId> <groupId>io.springfox</groupId> <version>3.0.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${version.log4j.core}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency>
使SLF4J在Android中登录Logcat并在测试中登录到控制台(gradle依赖问题)
我正在 Android Studio 中使用 gradle (Kotlin DSL) 进行构建,编写一个 Android 应用程序。我的目标是使用 SLF4J 并在运行时将所有日志从应用程序和第三方库重定向到 logcat...
如何在Spring Boot 3和Spring Framework 6中注册拦截器
我正在使用 Spring Boot 3.1.0-SNAPSHOT 构建后端,它使用 Spring Framework 6x。 拦截器: @Slf4j 公共类 MyInterceptor 实现 HandlerInterceptor { @覆盖 公众嘘声...
每当我在 GCP 中创建一个新项目时,它都会预加载许多我不想要的 API/服务: BigQuery API BigQuery 迁移 API BigQuery 存储 API ...
我有一个 REST API,它使用基本身份验证进行身份验证。我将此 API 添加到 WSO2 API 管理器并获取该 API 的生产 URL。基本上我需要 API 管理器来查看 API 使用情况的统计数据。我
如何向 iPhone 应用程序添加私有 API 和框架。像Apple80211.
Velocity 在 Spring Boot 中找不到模板资源
我使用 Velocity 模板引擎在我的 Spring boot 应用程序中使用电子邮件模板发送电子邮件实用程序。 当前的代码如下所示。 pom.xml: 我正在使用 Velocity 模板引擎在我的 Spring boot 应用程序中使用电子邮件模板发送电子邮件实用程序。 当前代码如下所示。 pom.xml: <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>2.0</version> </dependency> 速度引擎 bean 配置: @Configuration public class VelocityConfig { @Bean public VelocityEngine velocityEngine() { VelocityEngine ve = new VelocityEngine(); ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); ve.init(); return ve; } } 电子邮件模板放置在 src/main/resources/email-templates/summary-email.vm <!DOCTYPE html> <head> <title>Summary</title> </head> <body> <h1>Claims Summary</h1> </body> </html> 放置在以下目录中: src ├── main │ ├── java │ │ └── com │ │ └── packageNameioot │ │ └── SpringBootApplication.java │ ├── resources │ │ ├── email-templates │ │ │ └── summary-email.vm │ │ └── application.properties 使用模板发送电子邮件的服务类: @Slf4j @Service @RequiredArgsConstructor public class EmailSummaryService { private final EmailConnector connector; private final VelocityEngine velocityEngine; public Mono<Void> sendFinanceClaimsRunEmailSummary(FinancePeriodRunEntity periodRunEntity, int successCount, int errorCount) { EmailDto emailDto = EmailDto.builder() .recipients(Set.of("[email protected]")) .subject("Claims summary") .body(createEmailBody()) .html(true) .build(); return connector.submitEmailRequest(emailDto); } private String createEmailBody() { VelocityContext context = new VelocityContext(); Template template = velocityEngine.getTemplate("email-templates/summary-email.vm"); StringWriter writer = new StringWriter(); template.merge(context, writer); return writer.toString(); } } 但是Velocity无法定位模板,出现以下错误。 ERROR velocity:96 - ResourceManager : unable to find resource 'email-templates/summary-email.vm' in any resource loader. org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'email-templates/summary-email.vm' 属性应该这样设置: VelocityEngine ve = new VelocityEngine(); ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); ve.setProperty("resource.loader.classpath.class", ClasspathResourceLoader.class.getName()); 根据 Apache Velocity Engine 文档。
我有两个 API 端点,如下所示。 [路线(“api/[控制器]”)] [API控制器] 公共类 StudentController : ControllerBase { IStudentRepository 学生存储库; 公开
我有一个API URL,是这样的 https://api-amvstrm.nyt92.eu.org/api/v1 /popular 和 API 响应如下所示 t itle": "地牢网格", "id": "地牢-...
关于实施和迁移到 API V3 的 YouTube 官方文档,他们说: YouTube 数据 API (v2) 功能:检索视频推荐 v3 API 不会检索以下列表
如何使用 OpenCL C++ API 获取设备 cl_device_id
我开始使用 OpenCL C++ API。我已经使用 C API 很长时间了。 C++ API 更加优雅、简单,代码更少且不易出错,但我需要设备 ID。我...
我试图弄清楚如何修改此处找到的 Foursquare iOS API“BZFoursquare”:https://github.com/baztokyo/foursquare-ios-api。 在他们的示例中,他们使用一体化 ViewContro...
如何在Flutter中实现凭证管理API? 我想在 Google 中保存登录凭据。如何在浏览器中调用凭证管理API?
我想从 org.sonar.api.scanner.sensor.ProjectSensor 的实现中执行对 Sonar Server 的 API 调用。是否有任何“合规”的执行方式,例如: https://myserver:9001/api...
在 Firely .Net Sdk 中创建患者 FHIR API 负载时出错
我正在尝试使用以下 API Url 在 EPIC 沙盒中创建患者 https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4/Patient 我正在使用 Firely .Net Sdk 进行 EPIC FHIR API 集成...
我正在配置 AWS CloudFront。我有两条后端路线 /api/v3/test1/统计 /api/v3/test2/主题 我创建了 2 个行为 /api/v3/*/统计信息 /api/v3/*/主题 我正在使用预定义的策略
如何在 svelteKit api 目录中创建 catch-all 路由?
我正在 sveltekit 中创建 API 端点。所有 API 端点都位于 /src/routes/api/DIR 内。 如何为任何不存在的 GET、POST、DELETE 和 PUT 请求创建主捕获所有路由?
Google 地图 API 通过 API 发出的路线请求返回 ZERO_RESULTS,但适用于 Google 地图
有问题的呼叫是: https://maps.googleapis.com/maps/api/directions/json?origin=35.73455050,-95.31531510&destination=29.67404860,-95.54087240&waypoints=29.92853940,-95.29782860...
MPMoviePlayerController 的“currentPlaybackTime”属性是私有 API
我不确定这个私有 API 的事情。 MPMoviePlayerController 的 MPMediaPlayback 协议中的属性 currentPlaybackTime 是私有 API 吗? 我问,因为这个专业人士...
我像这样设置 lambda 函数: 我想部署在 api 上。当我将 api 设置为休息 api 时,我尝试测试它,如下所示: 我收到以下错误: 要求 / 潜伏 43 地位 200 回应...
我使用 MediatR 编写了一个简单的 API,并附有我在网上找到的示例。它有一个 GET 和一个 POST。 API 获取: 命名空间 API.Features.My.Queries; [路线(“api/mydata/{myid}”)] 公开
{"cod":401, "message": "使用 Moya 时出现 Open Weather API 错误,API 密钥无效
所以我使用moya创建了一个对openweatherAPI的API请求。现在 Postman 的返回似乎没问题,但 X 代码上的 API 调用返回 401: Invalid API key 我已经尝试了很多方法来看看到底是什么......
我有一个 API 端点,可以从服务器清除缓存。端点需要在 API 调用中传递身份验证令牌。当我尝试通过邮递员请求 API 时,它可以工作......
如何从 Visual Studio 中的 Swagger 文件更新 REST API 客户端
如何从 Visual Studio 中的 Swagger 文件更新 REST API 客户端?右键单击项目时,我通过“添加 -> REST API 客户端”菜单选项创建了 REST API 客户端。看截图
OpenAPI 生成器 - typescript - 如何设置 API 密钥?
使用 OpenAPI typescript Generator,如何设置 API 密钥? 这是使用 typescript-fetch 生成器执行此操作的方法 const api = new DefaultApi(新配置({ apiKey: apiEndpoints.
我无法使用 Discord API 更改 DM 群组图标。 我发送了补丁请求: 导入请求 requests.patch(url=f'https://discord.com/api/v9/channels/{group_id}', json={'icon': f'data:image/png;
我想知道是否有一些API可以读取电子邮件帐户?
我有一台只有一个端点 API 的设备 (SMSMachine)。 我的目标是监听设备自动执行的所有异步设备通信以及 API 调用的响应...
iPhone开发有API可以禁用邮件/短信吗?我找不到。
.Net core Web API 将 json/model 值设置为 NULL
我有一个 .Net core Web API,它接受以下 JSON:(RequestModel) { “isSpecimen”:正确, “形式”: { “网络”:{ “abc1...
iPhone 的 Google API 已经推出了吗? 如果是,我如何集成到我的应用程序中。
Azure API 管理:如何将原始响应正文存储为变量并输出选定字段?
我在 Azure API 管理中创建了一个简单的 API,目的是在 Azure DevOps Boards 中创建工作项。我在 Azure Board 端点的 API 策略中创建了一个 标签...
我尝试使用 openAI api 构建 chatgpt 克隆,但我在 api 的响应 paylaod 中收到 404 错误代码。我尝试了多种选择,但没有找到任何解决方案......
我有一个 TestController,它有两个方法,如下所示: [API控制器] 公共类 RedoxController :ControllerBase { [路线(“api/氧化还原”)] [http邮报] 公共 IActionResult 验证([
如何创建一个在 API POST 中接受此内容的模型? { “formId”:“ff2f0a7f-aa26-11ee-bc5f-0242ac110009”, "工作流程ID": "", “状态”...
返回类型为 ActionResult 的 API 控制器不接受 OkObjectResult
我想创建一个 C# API,而不是使用控制器/最小 API,而是使用 Ardalis.ApiEndpoints 包(基于控制器) 基于我不想回应的条件...
在 ASP.NET Core 7 WebAPI 上运行 React-App 构建
我有一个 ASP.NET Core 7 WebAPI,有很多路由,例如: domain.com/Api/Product/GetAll domain.com/Api/Product/Delete/ domain.com/Api/Product/Create ... 我有一个反应应用程序,我需要使用它
我尝试使用 WPS 从 JIRA REST API 获取数据。我使用 HTTP PROC 调用 JIRA Rest api。 过程http 方法=“获取” url =“http://服务器名称:8080/rest/api/2/search?%str(&)fields=pro...
如何在 Google Cloud Console 中添加 Google Keep API 范围?
我尝试使用 OAuth 2.0 连接到 Google Keep API,但无法在 Google Cloud Console 中添加所需的范围。我已在“库”部分启用了 Google Keep API,但是当...
谁能告诉我如何获取 Emporia vue gen 2 的 API 密钥?
我想将 Emporia 设备与我的 Java API 连接。现在我需要 Emporia API 密钥来执行此操作。谁能告诉我如何获取 Emporia API 密钥?我已经通过他们的应用程序完成了注册,但是
使用Python,我想创建一个具有以下端点的API服务器: /metric - 需要返回 API 服务器被调用的次数 /health - 需要返回确定
我试图从 Flickr API 获取一些 JSON 数据,但我的 Swift 代码无法正常工作。 这是基于 Jameson Quave 关于使用 Swift 发出 API 请求的教程 func GetFlickrData(标签:字符串...
正如标题。 rippleEffect 是 CATransition 私有 API 的类型吗? CATransition * canimation = [CATransition 动画]; [canimation setDelegate:self]; [动画设置持续时间:0.5]; 动画。
我正在尝试集成 UPS 使用 OAuth 2.0 的新 RESTful API,这是我第一次这样做。使用客户端 ID 和客户端密钥,我可以获得访问令牌。并获得 API 服务...
如何从 Dockerfile 或 docker-compose 运行 knex 迁移
我有可与 API 和 MySQL 数据库配合使用的 Dockerfile,它应该进行迁移: 从节点 工作目录/api 复制 。 。 运行 npm 安装 暴露3001 体积 [“/api/node_modules”] 命令[&
为什么 Context API 在高频更新方面比 Redux 差?
我看到很多文章说Redux比高频更新在性能上比Context API更好,但没有具体说明原因。 是什么让人们说 Redux 比 Context API 更好......
使用 Azure Devops REST API 创建交付计划样式规则
我正在尝试使用 Azure Devops REST API 在 Azure Devops 项目中创建交付计划。我使用以下方法来创建相同的。 https://learn.microsoft.com/en-us/rest/api/azure/devop...
Firebase 消息 sendToDevice() 新 API?
用于 Firebase 消息传递的“旧/版本 8”JavaScript API 具有向移动设备发送通知的功能: admin.messaging().sendToDevice(...) “新/模块化/
我已开始将 Azure Maps API 用于静态图像,以便可以在报告中呈现区域设置的图片。 我目前使用的地址是: 地图/静态/png?api-version={apiVersion}&
我使用 Alexa Skills Kit 从 api 获取数据,在该 API 中我获取类别 {name、id 和 imgurl} 以及该类别中的视频(name、id 和thumbnailImg),然后获取视频本身。 我正在尝试...