반응형
https://blog.plainbit.co.kr/loglayer-gaebaljareul-wihan-hyeogsinjeogin-tonghab-roging-raibeureori/
LogLayer란?
다양한 로깅 라이브러리와 클라우드 제공업체에 로그를 라우팅하는 통합 로거
기존 로깅 라이브러리 들은 각기 다른 API를 가지고 있어서 문제 有 -> 해결하려고 등장
LogLayer특징
일관된 API | 다양한로깅 라이브러리에 대해 일관된 API 제공 |
다중 전송 지원 | 여러 대상에 동시 로그 전송 가능 |
유연한 로거 교체 | 애플리케이션 코드 변경 없이 로깅라이브러리 쉬운 교체 |
플러그인 시스템 | 로그 데이터를 로깅 라이브러리로 전송하기 전에 수정할 수 있는 플러그인 시스템을 제공 |
표준화된 오류 처리 | 오류 처리 및 직렬화를 표준화하여 일관된 오류 로깅 가능케함 |
테스트를 위한 내장 mock | 테스트 시 로깅 코드를 쉽게 모의할 수 있는 기능 제공 |
LogLayer 작동 방식
전송 시스템 통해 로깅 라이브러리에 대한 어댑터 역할을 함 (다중 전송 지원, 유연한 로거 교체)
실습을 위해.. 구현을 함 해보기
LogLayer 구현
pytorch에서 구현할 수 있다.
import torch
import torch.nn as nn
class LogLayer(nn.Module):
def __init__(self):
super(LogLayer, self).__init__()
def forward(self, x):
# 중간 값을 기록
print(f"LogLayer - Tensor shape: {x.shape}, values: {x}")
return x
사용 예시
모델 정의 시 사용
class SimpleModel(nn.Module):
def __init__(self):
super(SimpleModel, self).__init__()
self.fc1 = nn.Linear(10, 5)
self.log1 = LogLayer() # LogLayer 추가
self.fc2 = nn.Linear(5, 2)
self.log2 = LogLayer() # 또 다른 LogLayer 추가
def forward(self, x):
x = self.fc1(x)
x = self.log1(x) # 중간 값 확인
x = self.fc2(x)
x = self.log2(x) # 최종 값 확인
return x
# 모델 인스턴스 생성
model = SimpleModel()
# 입력 데이터
input_tensor = torch.randn(1, 10) # 1 x 10 크기의 랜덤 텐서
output = model(input_tensor)
로그파일 기록 원한다하면
class AdvancedLogLayer(nn.Module):
def __init__(self, log_to_file=False, file_name="log.txt"):
super(AdvancedLogLayer, self).__init__()
self.log_to_file = log_to_file
self.file_name = file_name
def forward(self, x):
log_message = f"AdvancedLogLayer - Tensor shape: {x.shape}, values: {x}\n"
if self.log_to_file:
with open(self.file_name, "a") as f:
f.write(log_message)
else:
print(log_message)
return x
주피터 노트북에서 코드를 돌려서 확인해봤다.
위에처럼 출력됨
LogLayer와 다른 로깅 라이브러리의 차별점?
- winston과의 비교: 일관된 API, 쉬운 전환성, 강력하고 유연한 기능 제공
- Pino와의 비교: 여러 로깅 대상으로 동시에 로그를 전송할 수 있는 기능을 제공
- Bunyan과의 비교: 다양한 형식과 대상으로 로깅 확장, 강력한 로그 변환 및 처리 기능 제
LogLayer는 비동기 로깅으로 성능을 최적화하고, 증가하는 로그 볼륨을 효율적으로 처리할 수 있도록 설계되었다.
확장성 측면,, : 다중 로거 지원, 클라우드 통합, 사용자 정의 전송 가능
미래 계획.. : 더 많은 전송 옵션, 성능 최적화, 실시간 로그 분석 기능, 보안 강
반응형
'학회_공부해요 > 기술_스터디' 카테고리의 다른 글
[이스트시큐리티] 업무 협조 요청 메일을 위장하여 유포 중인 악성코드 주의! (0) | 2025.01.21 |
---|---|
[IGLOO]Linux Kernel 내 Use-After-Free 취약점 (CVE-2024-1086) 분석 및 대응방안 (0) | 2025.01.14 |
[CVE 취약점 분석] CVE-2024-7029 (0) | 2024.11.26 |
[Virus Bulletin] Nexus Android banking botnet – compromising C&C panels and dissecting mobile AppInjects (2) | 2024.11.18 |
[CIO KOREA] 트럼프는 반도체 지원 법안을 폐지할까? (6) | 2024.11.12 |