일반적인 접근 방식은 다음과 같습니다.
1. 구성에서 로그 수준을 수정합니다.
2. 애플리케이션을 다시 시작합니다.
3. 문제가 발생한 후 문제를 해결하려면 오류 로그를 확인하세요.
이 프로세스에서는 애플리케이션을 다시 시작해야 합니다. 이는 더 번거롭고 효율성이 떨어지며 대규모 온라인 프로젝트의 경우 마음대로 종료하고 다시 시작할 수 없습니다. 그렇다면 애플리케이션을 다시 시작하지 않고 로그 수준을 동적으로 변경하는 방법이 있습니까?
이제 Lao Wan이 SpringBoot의 액추에이터 구성 요소를 통해 로그 수준을 동적으로 수정하는 방법을 가르쳐 드리겠습니다.
1. 종속성 추가
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2. Actuator에 의해 노출된 포트를 구성합니다
#启用actuator端口 management.endpoints.enabled-by-default=fasle #设置actuator的访问根路径,默认是/actuator management.endpoints.web.base-path=/message #启用的端点 management.endpoints.web.exposure.include=loggers
여기에서는 프로젝트의 기본 액세스 경로와 일관성을 유지하기 위해 Actuator /actuator의 기본 액세스 경로를 /message로 수정했습니다.
포트를 활성화하는 두 가지 구성 방법:
방법 1: (권장)
management.endpoints.web.exposure.include=loggers
방법 2: (테스트 시 이 방법은 작동하지 않았습니다.)
management.endpoint.loggers.enabled=true
추가: 정보 포트를 비활성화하는 방법
management.endpoints.enabled-by-default=false management.endpoint.info.enabled=true
액추에이터 구성 요소는 스프링 부트의 4가지 주요 구성 요소 중 하나라고 합니다. 자세한 내용은 인터넷에서 찾을 수 있습니다.
액추에이터 엔드포인트 포트 설명:
ID | Description | 기본적으로 활성화 |
---|---|---|
auditevents | 현재 애플리케이션의 감사 이벤트 정보 표시 | 예 |
beans | 하나 보여주기 애플리케이션에 있는 모든 Spring Bean의 전체 목록 | Yes |
conditions | 구성 및 자동 구성 클래스의 상태와 적용되거나 적용되지 않는 이유를 표시합니다. | Yes |
configprops | 표시 모든 @ConfigurationProperties의 컬렉션 목록 | Yes |
env | Spring의 ConfigurableEnvironment 속성 표시 | Yes |
flyway | 있는 경우 데이터베이스 마이그레이션 경로 표시 | Yes |
health | 디스플레이 애플리케이션의 상태 정보(인증되지 않은 연결을 사용하여 접근하면 간단한 "상태"가 표시되고, 인증된 연결을 사용하여 접근하면 모든 세부 정보가 표시됨) | Yes |
info | 모든 애플리케이션 정보 표시 | 예 |
liquibase | Liquibase 데이터베이스 마이그레이션 경로가 있는 경우 표시 | 예 |
metrics | 현재 애플리케이션의 메트릭 정보 표시 | 예 |
매핑 | 컬렉션 표시 모든 @requestmapping 경로 목록 | yes |
scheduledtasks | 응용 프로그램의 예약 된 작업 표시 | 예의 세션 |
include
属性列出了公开的端点的ID,
exclude
属性列出了不应该公开的端点的ID
exclude
属性优先于include属性。包含和排除属性都可以使用端点ID列表进行配置。
*可以用来选择所有端点。
例如,要通过HTTP公开除env和beans端点之外的所有内容,请使用以下属性:
management.endpoints.web.exposure.include=* management.endpoints.web.exposure.exclude=env,beans
三、关闭鉴权
一般我们会将actuator和spring security鉴权组件结合使用,防止这些功能端口被随便调用。由于这里是功能演示,先放开actuator相关端口的权限认证。
此外,如果存在Spring Security,则需要添加自定义安全配置,以允许对端点进行未经身份验证的访问,如以下示例所示:放开所有Endpoint端点进行匹配
@Configuration public class ActuatorSecurity extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests() .anyRequest().permitAll() } }
四 、通过/loggers端口查看日志级别
请求链接:http://localhost:8090/message/loggers
注意上面我说过的,我调整了management.endpoints.web.base-path=/message。如果没有设置此参数,则使用默认的/actuator去访问。
五、发起http请求修改日志级别
这里演示,修改目录com.wxswj.provider.message.controller的日志级别为debug
请求类型为POST,参数格式是JSON
curl -H "Content-Type: application/json" -X POST --data " { "configuredLevel": "DEBUG" } " http://localhost:8090/message/loggers/com.wxswj.provider.message.controller
大家可以在服务器上通过curl发起http请求,或者通过Postman发起请求。
curl -H "Content-Type: application/json" -X POST --data "{"configuredLevel": "DEBUG"}" http://localhost:8090/loggers/com.wxswj.provider.message.controller
六、查询日志级别修改结果
http://localhost:8090/message/loggers/com.wxswj.provider.message.controller
{ "configuredLevel": "DEBUG", "effectiveLevel": "DEBUG" }
说明我们的修改日志级别的请求生效。
위 내용은 로그 수준을 동적으로 수정하는 SpringBoot의 작업은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
