프로그래머 로그의 품질을 향상시키는 5가지 방법
프로그래머 로그 품질을 향상시키는 5가지 방법
최근 Scribe 및 Logstash와 같은 오픈 소스 프로젝트는 물론 Splunk와 같은 선불 도구, 호스팅 서비스 등 프로그래머가 로그를 이해하는 데 도움이 되는 다양한 새로운 도구가 등장했습니다. SumoLogic 및 PaperTrail. 이러한 도구의 공통점은 로그 데이터를 정리하고 대량의 로그에서 더 가치 있는 파일을 추출한다는 것입니다.
로그 품질을 향상하기 위한 5가지 팁
하지만 이러한 도구는 실제로 입력한 로그 데이터에 전적으로 의존하기 때문에 도움이 되지 않는 한 가지가 있으며, 데이터의 품질과 양을 보장하는 방법은 다음과 같습니다. 사용자. 따라서 중요한 순간에 부분적이거나 누락된 로그를 기반으로 코드를 디버깅해야 하는 경우 상황이 까다로워질 수 있습니다.
이런 일이 발생할 가능성을 줄이기 위해 저널링 시 명심해야 할 5가지 팁은 다음과 같습니다.
1. 안녕하세요, 제 (스레드) 이름은
Ringo로서 스레드 이름 속성은 가장 중요한 것 중 하나입니다. Java의 과소평가된 메소드 그 이유는 스레드 이름이 대부분 설명적이기 때문입니다. 그러나 여기에서도 문제가 발생합니다. 사람들 자신과 마찬가지로 이름을 지을 때 일반적으로 특정 의미를 부여합니다. 멀티스레드 로그에서는 스레드 이름도 중요한 역할을 합니다. 일반적으로 대부분의 로깅 프레임워크는 호출되는 스레드의 이름을 기록합니다. 안타깝게도 우리는 일반적으로 스레드 풀이나 컨테이너에 의해 단순히 할당된 http-nio-8080-exec-3과 같은 이름을 봅니다.
어떤 이유로 우리는 이러한 오해를 여러 번 들었습니다. 스레드 이름은 변경할 수 없습니다. 반면 로그에서는 스레드 이름이 기본적인 역할을 하므로 올바르게 사용해야 합니다. 예를 들어 서블릿 이름, 작업 관련 또는 사용자나 메시지 ID와 같은 일부 동적 컨텍스트와 같은 특정 컨텍스트와 결합합니다.
이 경우 코드 인터페이스는 다음과 같아야 합니다.
Thread.currentThread().setName(ProcessTask.class.getName() + “: “+ message.getID);
고급 버전 현재 스레드의 스레드 로컬 변수에 로드되고, 로그 어펜더를 구성하고, 이를 자동으로 로그 항목에 추가합니다.
이 기능은 여러 스레드가 서버 로그에 기록 중일 때 유용하지만 단일 스레드에 집중해야 합니다. 분산/SOA 환경에서 실행하는 경우 고유한 이점도 확인할 수 있습니다.
2. 분산 식별자
SOA 또는 메시지 기반 아키텍처에서는 작업 실행이 여러 시스템에 걸쳐 있을 가능성이 높습니다. 이러한 환경에서 장애를 처리할 때 관련 기계와 그 상태를 연결하는 것이 상황을 이해하는 데 핵심이 됩니다. 대부분의 로그 분석기는 이러한 로그 메시지를 그룹화하므로 사용자가 고유 식별자를 제공한다고 가정하면 실제 로그 메시지의 일부가 될 수 있습니다.
설계 관점에서 이는 시스템 진입부터 작업 완료까지 각 인바운드 작업에 고유한 ID가 있어야 함을 의미합니다. 사용자 ID와 같은 영구 식별자는 좋은 컨테이너가 아닐 수도 있습니다. 로그 파일을 기록하는 과정에서 사용자는 여러 작업을 수행할 수 있으며 이로 인해 특정 흐름을 격리하는 것이 더 어려워집니다. UUID가 좋은 선택일 수 있습니다. 해당 값은 실제 스레드 이름에 로드되거나 TLS 스레드에 대한 로컬 저장소로 로드될 수 있습니다.
3. 텍스트 + 드라이브를 사용하지 말고 로그 + 루프를 사용하지 마세요.
코드 조각이 긴밀한 루프에서 실행되고 해당 로그 작업을 수행하는 것을 여러 번 볼 수 있습니다. 기본 가정은 코드가 제한된 횟수만큼 실행될 수 있다는 것입니다.
아마 아주 잘 돌아가고 있을 겁니다. 그러나 코드가 예상치 못한 입력을 받으면 루프가 중단되지 않을 수 있습니다. 이 경우 무한 루프(비록 그것만으로도 충분히 나쁘지만)를 처리하는 것이 아니라 무한한 양의 데이터를 디스크나 네트워크에 쓰는 코드를 처리하는 것입니다.
독립형 시나리오에서는 서버 충돌이 발생할 수 있지만 분산형 시나리오에서는 전체 클러스터가 영향을 받습니다. 따라서 가능하다면 긴밀한 루프에 로그인하지 마십시오. 오류를 포착할 때 특히 그렇습니다.
다음 예제는 while 루프에서 예외를 기록합니다.
void read() {
while (hasNext()) {
try {
readData()
} catch { 예외 e) {
// 이는 권장되지 않습니다
logger.error(“error reading data“, e)
}
}
}
readData가 예외를 발생시키는 경우 발생하고 hasNext의 반환 값이 true이면 여기에 무제한 로그 데이터가 기록됩니다. 이 문제를 해결하는 방법은 다음 중 아무것도 기록되지 않도록 하는 것입니다.
void read() {
int 예외 발생 = 0
while (hasNext()) {
try {
readData( );
} catch {Exception e) {
if (ExceptionsThrown < THRESHOLD) {
logger.error("error reading data", e)
ExceptionsThrown++; else {
// 이제 오류로 인해 시스템이 중단되지는 않습니다.
}
}
}
}
또 다른 방법은 루프에서 로그 기록을 제거하고 1/마지막 예외 개체이며 다른 곳에 기록되었습니다.
4. 잡히지 않은 핸들러
Westeros에는 마지막 방어벽이 있고 Thread.uncaughtExceptionHandler가 있습니다. 따라서 가능한 한 많이 사용하십시오. 이러한 핸들러를 설치하지 않으면 예외가 발생했을 때 귀중한 컨텍스트를 거의 얻을 수 없으며 예외가 끝나기 전에 로그한 위치를 제어할 수 없습니다.
(종료된) 스레드의 변수에 액세스할 수 있는 방법이 없는 것처럼 보이는 포착되지 않은 예외 핸들러에서도 실제 스레드 개체에 대한 참조를 계속 얻을 수 있습니다. 1단계를 고수하면 여전히 기록할 의미 있는 thread.getName() 값을 얻게 됩니다.
5. 외부 호출 캡처
외부 API가 호출될 때마다 JVM 예외 확률이 크게 높아집니다. 여기에는 웹 서비스, HTTP, DB, 파일 시스템, 운영 체제 및 기타 JNI 호출이 포함됩니다. 언제든지 폭발할 수 있으므로 모든 통화를 진지하게 받아들이십시오. "동일한 시점에 발생할 가능성이 매우 높습니다."
대부분 외부 API 실패의 원인은 예상치 못한 입력이며, 이를 로그에 기록하는 것이 코드 수정의 핵심입니다.
이 시점에서 오류를 기록하지 않고 예외를 발생시키도록 선택할 수 있습니다. 이 경우 호출의 관련 매개변수를 수집하여 예외 오류 정보로 구문 분석하면 됩니다.
더 높은 수준의 스택 호출에서 예외가 포착되고 기록되는지 확인하세요.
LAMP Brothers의 원본 PHP 비디오 튜토리얼 CD/"Essential PHP in Detail"을 무료로 받으세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요:
http://www.lampbrother.net
[Brothers IT 교육] PHP, Linux, HTML5, UI, Android 및 기타 비디오 튜토리얼(코스웨어 + 노트 + 비디오)을 배우십시오!
네트워크 디스크 튜토리얼 다운로드: http://pan.baidu.com/s/1mg8ANMg
위 내용은 내용의 측면을 포함하여 프로그래머 로그의 품질을 향상시키는 5가지 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











로그인 화면에 "귀하의 조직에서 PIN 변경을 요구합니다"라는 메시지가 나타납니다. 이는 개인 장치를 제어할 수 있는 조직 기반 계정 설정을 사용하는 컴퓨터에서 PIN 만료 제한에 도달한 경우 발생합니다. 그러나 개인 계정을 사용하여 Windows를 설정하는 경우 이상적으로는 오류 메시지가 나타나지 않습니다. 항상 그런 것은 아니지만. 오류가 발생한 대부분의 사용자는 개인 계정을 사용하여 신고합니다. 조직에서 Windows 11에서 PIN을 변경하도록 요청하는 이유는 무엇입니까? 귀하의 계정이 조직과 연결되어 있을 수 있으므로 이를 확인하는 것이 기본 접근 방식입니다. 도메인 관리자에게 문의하면 도움이 될 수 있습니다! 또한 잘못 구성된 로컬 정책 설정이나 잘못된 레지스트리 키로 인해 오류가 발생할 수 있습니다. 지금 바로

Windows 11은 신선하고 우아한 디자인을 전면에 내세웠습니다. 현대적인 인터페이스를 통해 창 테두리와 같은 미세한 세부 사항을 개인화하고 변경할 수 있습니다. 이 가이드에서는 Windows 운영 체제에서 자신의 스타일을 반영하는 환경을 만드는 데 도움이 되는 단계별 지침을 설명합니다. 창 테두리 설정을 변경하는 방법은 무엇입니까? +를 눌러 설정 앱을 엽니다. Windows개인 설정으로 이동하여 색상 설정을 클릭합니다. 색상 변경 창 테두리 설정 창 11" Width="643" Height="500" > 제목 표시줄 및 창 테두리에 강조 색상 표시 옵션을 찾아 옆에 있는 스위치를 토글합니다. 시작 메뉴 및 작업 표시줄에 강조 색상을 표시하려면 시작 메뉴와 작업 표시줄에 테마 색상을 표시하려면 시작 메뉴와 작업 표시줄에 테마 표시를 켭니다.

Windows 11의 디스플레이 크기 조정과 관련하여 우리 모두는 서로 다른 선호도를 가지고 있습니다. 큰 아이콘을 좋아하는 사람도 있고, 작은 아이콘을 좋아하는 사람도 있습니다. 그러나 올바른 크기 조정이 중요하다는 점에는 모두가 동의합니다. 잘못된 글꼴 크기 조정이나 이미지의 과도한 크기 조정은 작업 시 생산성을 저하시킬 수 있으므로 시스템 기능을 최대한 활용하려면 이를 사용자 정의하는 방법을 알아야 합니다. Custom Zoom의 장점: 화면의 텍스트를 읽기 어려운 사람들에게 유용한 기능입니다. 한 번에 화면에서 더 많은 것을 볼 수 있도록 도와줍니다. 특정 모니터 및 응용 프로그램에만 적용되는 사용자 정의 확장 프로필을 생성할 수 있습니다. 저사양 하드웨어의 성능을 향상시키는 데 도움이 될 수 있습니다. 이를 통해 화면의 내용을 더 효과적으로 제어할 수 있습니다. 윈도우 11을 사용하는 방법

화면 밝기는 최신 컴퓨팅 장치를 사용할 때 필수적인 부분이며, 특히 화면을 장시간 볼 때 더욱 그렇습니다. 눈의 피로를 줄이고, 가독성을 높이며, 콘텐츠를 쉽고 효율적으로 보는 데 도움이 됩니다. 그러나 설정에 따라 밝기 관리가 어려울 수 있으며, 특히 새로운 UI 변경이 적용된 Windows 11에서는 더욱 그렇습니다. 밝기를 조정하는 데 문제가 있는 경우 Windows 11에서 밝기를 관리하는 모든 방법은 다음과 같습니다. Windows 11에서 밝기를 변경하는 방법 [10가지 설명] 단일 모니터 사용자는 다음 방법을 사용하여 Windows 11에서 밝기를 조정할 수 있습니다. 여기에는 단일 모니터를 사용하는 데스크탑 시스템과 노트북이 포함됩니다. 시작하자. 방법 1: 알림 센터 사용 알림 센터에 액세스할 수 있습니다.

iOS 17에서 Apple은 모바일 운영 체제에 몇 가지 새로운 개인 정보 보호 및 보안 기능을 도입했습니다. 그 중 하나는 Safari의 개인 탐색 탭에 대해 2단계 인증을 요구하는 기능입니다. 작동 방식과 끄는 방법은 다음과 같습니다. iOS 17 또는 iPadOS 17을 실행하는 iPhone 또는 iPad에서 Safari에 개인 정보 보호 브라우징 탭이 열려 있는 경우 이제 Apple 브라우저에 Face ID/Touch ID 인증이나 암호가 필요하며, 다시 액세스하려면 세션이나 앱을 종료해야 합니다. 즉, 잠금이 해제된 iPhone이나 iPad를 다른 사람이 손에 넣는 경우에도 비밀번호를 모르면 개인정보를 볼 수 없습니다.

HTTP 상태 코드 520은 서버가 요청을 처리하는 동안 알 수 없는 오류가 발생하여 더 구체적인 정보를 제공할 수 없음을 의미합니다. 서버가 요청을 처리하는 동안 알 수 없는 오류가 발생했음을 나타내는 데 사용됩니다. 이는 서버 구성 문제, 네트워크 문제 또는 기타 알 수 없는 이유로 인해 발생할 수 있습니다. 이는 일반적으로 서버 구성 문제, 네트워크 문제, 서버 과부하 또는 코딩 오류로 인해 발생합니다. 상태 코드 520 오류가 발생하면 웹사이트 관리자나 기술 지원팀에 문의하여 자세한 정보와 지원을 받는 것이 가장 좋습니다.

유명한 활성화 스크립트 MAS2.2 버전은 @asdcorp에서 시작된 방법이며 MAS 작성자는 이를 HWID2라고 부릅니다. https://github.com/massgravel/Microsoft-Activation-Scriptsgatherosstate.exe(원래 버전 아님, 수정됨)를 다운로드하고 매개변수를 사용하여 실행한 후 GenuineTicket.xml 티켓을 생성하세요. 먼저 원래 방법(gatherosstate.exePfn=xxxxxxx;DownlevelGenuineState=1)을 살펴본 다음 최신 방법(gatheros)과 비교해 보세요.
![Windows 11에서 폴더 숨기기 및 숨김 해제 방법 [3가지 방법]](https://img.php.cn/upload/article/000/887/227/169542942766265.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
폴더를 숨기는 것은 데스크탑을 정리된 상태로 유지하는 좋은 방법입니다. 개인 파일이나 일부 고객 세부 정보를 엿보는 사람의 눈에 띄지 않게 하고 싶을 수도 있습니다. 그것이 무엇이든, 필요할 때 그것들을 치워두고 숨김을 해제할 수 있는 능력은 큰 절약입니다. 즉, 이러한 숨겨진 파일은 기본 메뉴에 표시되지 않지만 계속 액세스할 수 있습니다. 매우 간단하며 시간이 너무 많이 걸리지 않습니다. Windows 11에서 폴더를 숨기는 방법은 무엇입니까? 1. 파일 탐색기를 사용하고 + 키를 눌러 파일 탐색기를 엽니다. WindowsE 숨기려는 폴더를 찾아 마우스 오른쪽 버튼으로 클릭한 후 속성을 선택하세요. 일반 탭으로 이동하여 숨기기 상자를 선택하고 적용을 클릭한 다음 확인을 클릭합니다. 다음 대화 상자에서 이 폴더, 하위 폴더에 변경 사항 적용을 선택합니다.
