Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

echoss_common-1.0.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

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

Hashes for echoss_common-1.0.0.tar.gz
Algorithm Hash digest
SHA256 46a6da1fe544e8aec7a0dd620e39d63ee602cdbad16b261dd81af696d763908e
MD5 9c75fdd803508b097f5a3469dc431ca6
BLAKE2b-256 6e18ad8b6e2d04a5a25c29ebb7c9797b9963641c271245a2ff166852cba8ee4b

See more details on using hashes here.

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

Hashes for echoss_common-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd40e93528d274cd4d4253b609659e8c9c0a390fc89720d1e246ec87e8127d91
MD5 dc782defa3d13aab246a7ab24fb53b58
BLAKE2b-256 a1da699f2662406d57659e7b99c2715f7669ec939e716e52fcbf0c97b705474a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page