프로젝트 전반에 걸쳐 여러 로깅 라이브러리를 저글링하는 데 지치셨나요? 일관되지 않은 오류와 메타데이터 로깅으로 인해 불만이 있으신가요? 오픈 소스 솔루션인 LogLayer는 로깅 프로세스를 간소화하고 개발자 경험을 향상시킵니다.
LogLayer란 무엇인가요?
LogLayer는 널리 사용되는 로깅 라이브러리(Pino, Winston, Bunyan) 및 클라우드 제공업체(AWS, Google Cloud, DataDog)와 호환되는 통합 로깅 계층 역할을 합니다. 메시지, 메타데이터 및 오류를 로깅하기 위한 일관되고 직관적인 API를 제공하여 선택한 대상으로 로그를 보냅니다.
다음은 간단한 예입니다.
<code class="language-typescript">import { LogLayer } from 'loglayer' import { PinoTransport } from '@loglayer/transport-pino' import pino from 'pino' // Configure LogLayer with Pino const log = new LogLayer({ transport: new PinoTransport({ logger: pino() }) }) // Log with metadata log.withMetadata({ userId: '123', action: 'login' }) .info('User logged in successfully') // Contextual logging (persists across calls) log.withContext({ requestId: '123' }) log.info('Processing request') // requestId included try { // ... potential error-throwing code } catch (error) { log.withError(error) .withMetadata({ userId: '123' }) .error('User request processing failed') }</code>
LogLayer의 주요 장점:
원활한 라이브러리 전환: 코드 리팩토링 없이 로깅 라이브러리를 쉽게 전환할 수 있습니다. 프로젝트 도중에 Pino에서 Winston으로 교체해야 한다고 상상해보세요. LogLayer를 사용하면 이 작업이 수월해집니다.
일관된 API: 통합 API를 사용하면 라이브러리 전체에서 서로 다른 메소드 이름과 매개변수 순서를 기억할 필요가 없습니다. 비교:
<code>// LogLayer's consistent approach: log.withMetadata({ some: 'data' }).info('my message') // Inconsistent APIs without LogLayer: winston.info('my message', { some: 'data' }) // winston bunyan.info({ some: 'data' }, 'my message') // bunyan</code>
<code class="language-typescript">import { LogLayer } from 'loglayer' import { datadogLogs } from '@datadog/browser-logs' import { PinoTransport } from "@loglayer/transport-pino" import { DatadogBrowserLogsTransport } from "@loglayer/transport-datadog-browser-logs" // Datadog initialization (replace placeholders) datadogLogs.init({ clientToken: '<client_token>', site: '<datadog_site>', forwardErrorsToLogs: true, sampleRate: 100 }) const log = new LogLayer({ transport: [ new PinoTransport({ logger: pino() }), new DatadogBrowserLogsTransport({ logger: datadogLogs }) ] }) // Logs sent to both Pino and DataDog log.info('User logged in successfully') </datadog_site></client_token></code>
단순화된 오류 처리: 모든 라이브러리에 걸쳐 표준화된 오류 처리.
확장 가능한 플러그인 시스템: 민감한 데이터 수정과 같은 기능을 위한 플러그인을 추가하세요.
손쉬운 테스트: 내장된 모의 기능으로 테스트가 단순화됩니다.
시작하기:
설치가 간단합니다.
<code class="language-bash">npm install loglayer</code>
기본 사용법:
<code class="language-typescript">import { LogLayer, ConsoleTransport } from 'loglayer' const log = new LogLayer({ transport: new ConsoleTransport({ logger: console }) }) log.info('Hello world!')</code>
자세히 알아보기:
위 내용은 LogLayer: TypeScript/JavaScript를 위한 최신 로깅 라이브러리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!