No project description provided
Project description
echoss-common
echoss AI Bigdata Center 공통 유틸리티 라이브러리입니다. 로깅(Logger)과 파일 포맷(FileUtil) 기능을 제공합니다.
설치
pip install echoss-common
요구사항
- Python >= 3.12
- pyyaml > 6.0.2
기능
1. Logger (echoss_logger)
타임드 로테이팅 파일 핸들러와 콘솔 핸들러를 지원하는 로거 유틸리티입니다.
함수 목록
| 함수 | 설명 |
|---|---|
get_logger() |
새 로거 생성 또는 기존 로거 갱신 |
use_logger() |
이미 생성된 로거를 서브모듈에서 가져오기 |
set_logger_level() |
로거 레벨 변경 |
modify_loggers_by_prefix() |
이름 prefix로 여러 로거를 일괄 수정 |
상수
| 상수 | 값 |
|---|---|
LOG_FORMAT_DETAIL |
[날짜시간] 레벨 모듈.함수.라인 : 메시지 형식 |
사용 예시
from echoss_common import get_logger, use_logger, set_logger_level, modify_loggers_by_prefix, LOG_FORMAT_DETAIL
# 기본 로거 생성 (콘솔 + 파일 출력)
logger = get_logger(
logger_name='myapp',
logger_format=LOG_FORMAT_DETAIL, # 상세 포맷 사용 (선택)
file_path='logs/myapp.log', # 로그 파일 경로 (기본: logs/echoss.log)
backup_count=7, # 보관할 로그 파일 수 (0이면 전부 보관)
use_console=True, # 콘솔 출력 여부
level='DEBUG' # 로그 레벨
)
logger.info("애플리케이션 시작")
logger.debug("디버그 메시지")
logger.error("오류 발생")
# 서브모듈에서 기존 로거 재사용
logger = use_logger('myapp')
logger.info("서브모듈에서 로거 사용")
# 로거 레벨만 변경
set_logger_level(logger, 'WARNING')
# prefix로 시작하는 모든 로거 일괄 수정
modify_loggers_by_prefix(
prefix='myapp',
new_format=LOG_FORMAT_DETAIL,
new_path='logs/myapp.log',
level='INFO'
)
2. FileUtil (fileformat)
설정 파일(YAML, JSON, XML, Properties)을 딕셔너리로 읽고 쓰는 유틸리티 클래스입니다.
메서드 목록
| 메서드 | 설명 |
|---|---|
FileUtil.dict_load() |
설정 파일을 dict로 읽기 |
FileUtil.dict_dump() |
dict를 설정 파일로 쓰기 |
지원 포맷
| 확장자 | 포맷 |
|---|---|
.yaml, .yml |
YAML |
.json |
JSON |
.xml |
XML |
.properties |
Java Properties |
사용 예시
from echoss_common.fileformat import FileUtil
# YAML 파일 읽기
config = FileUtil.dict_load('config/settings.yaml')
print(config)
# JSON 파일 읽기
data = FileUtil.dict_load('config/params.json')
# Properties 파일 읽기
props = FileUtil.dict_load('config/app.properties')
# dict를 YAML 파일로 저장
settings = {'host': 'localhost', 'port': 8080, 'debug': True}
FileUtil.dict_dump(settings, 'config/settings.yaml')
# dict를 JSON 파일로 저장 (들여쓰기 지정 가능)
FileUtil.dict_dump(settings, 'config/settings.json', indent=2)
# 파일이 이미 존재할 때 덮어쓰기 방지
FileUtil.dict_dump(settings, 'config/settings.yaml', force_write=False)
API 참조
get_logger(logger_name, logger_format, file_path, backup_count, use_console, level)
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
logger_name |
str | 'echoss' |
로거 이름 |
logger_format |
str | LOG_FORMAT |
로그 포맷 문자열 |
file_path |
str | 'logs/echoss.log' |
로그 파일 경로 (None이면 파일 미사용) |
backup_count |
int | 0 |
보관할 로테이팅 파일 수 (0이면 전부 보관) |
use_console |
bool | True |
콘솔 출력 여부 |
level |
str|int | 'DEBUG' |
로그 레벨 |
FileUtil.dict_load(file_path, file_format, **kwargs)
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
file_path |
str | — | 읽을 파일 경로 |
file_format |
str | None |
포맷 강제 지정 (미지정 시 확장자 자동 인식) |
FileUtil.dict_dump(config, file_path, file_format, force_write, xml_tag, **kwargs)
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
config |
dict | — | 저장할 딕셔너리 |
file_path |
str | — | 저장할 파일 경로 |
file_format |
str | None |
포맷 강제 지정 (미지정 시 확장자 자동 인식) |
force_write |
bool | True |
기존 파일 덮어쓰기 여부 |
xml_tag |
str | None |
XML 저장 시 루트 태그 이름 |
라이선스
echoss AI Bigdata Center
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
echoss_common-1.0.0.tar.gz
(6.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file echoss_common-1.0.0.tar.gz.
File metadata
- Download URL: echoss_common-1.0.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46a6da1fe544e8aec7a0dd620e39d63ee602cdbad16b261dd81af696d763908e
|
|
| MD5 |
9c75fdd803508b097f5a3469dc431ca6
|
|
| BLAKE2b-256 |
6e18ad8b6e2d04a5a25c29ebb7c9797b9963641c271245a2ff166852cba8ee4b
|
File details
Details for the file echoss_common-1.0.0-py3-none-any.whl.
File metadata
- Download URL: echoss_common-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd40e93528d274cd4d4253b609659e8c9c0a390fc89720d1e246ec87e8127d91
|
|
| MD5 |
dc782defa3d13aab246a7ab24fb53b58
|
|
| BLAKE2b-256 |
a1da699f2662406d57659e7b99c2715f7669ec939e716e52fcbf0c97b705474a
|