1. 로그를 화면에 인쇄하기만 하면 됩니다
로깅 가져오기
logging.debug('디버그 메시지입니다')
logging.info('정보 메시지입니다' )
logging.warning('경고 메시지입니다')
화면에 인쇄:
WARNING:root:경고 메시지입니다
logging.basicConfig(level=logging.DEBUG,
format= '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y % H: %M:%S',
.info('정보 메시지입니다')
logging.warning('경고 메시지입니다')
./myapp. 로그 파일 내용은 다음과 같습니다.
Sun , 24 May 2009 21:48:54dem2.py[line:11] DEBUG 이것은 디버그 메시지입니다
Sun, 24 May 2009 21:48:54dem2.py[line: 12] INFO 이것은 정보 메시지입니다
Sun, 24 May 2009 21:48:54dem2.py[line:13] WARNING 이것은 경고 메시지입니다
logging.basicConfig 함수의 매개변수:
filename: 로그 파일 이름을 지정합니다.
filemode:
이는 로그 파일의 열기 모드('w' 또는 'a'
형식)를 지정하는 file 함수와 동일한 의미를 갖습니다.
출력의 형식과 내용을 지정하면 위의 예와 같이 많은 유용한 정보를 출력할 수 있습니다.
%(levelname)s:
로그 수준 이름 인쇄
%(pathname)s: 현재 실행 중인 프로그램의 경로(실제로는 sys.argv[0]
%(filename)s)를 인쇄합니다.
현재 실행 중인 프로그램 이름 인쇄
%(funcName)s: 로그의 현재 기능 인쇄
%(lineno)d: 로그의 현재 줄 번호 인쇄
%(asctime)s:
로그 인쇄 시간
%(thread)d: 인쇄 스레드 ID
%(threadName)s: 인쇄 스레드 이름
%(PROcess)d: 인쇄 프로세스 ID
%(message)s:
로그 정보 인쇄
datefmt: time.strftime()
수준과 동일한 시간 형식을 지정합니다.
로그 수준을 설정합니다. 기본값은 로깅입니다.경고
스트림:
로그의 출력 스트림을 지정합니다. 출력을 sys.stderr, sys.stdout 또는 파일로 지정할 수 있습니다. 기본 출력은 sys.stderr입니다. 스트림과 파일 이름을 동시에 지정하면 스트림이 무시됩니다. >
3. 로그 출력을 파일과 화면에 동시에 출력
로깅 가져오기
logging.basicConfig(level=logging.DEBUG,
datefmt='%a, %d %b %Y %H:%M:%S' ,
', 파일 모드='w')######################################################## ## ########################################### #########INFO 수준 이상의 로그 정보를 표준 오류에 인쇄하고 이를 현재 로그 처리 객체에 추가하도록 StreamHandler를 정의합니다. #console = login.StreamHandler()
setLevel(logging.INFO )
formatter = login.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('') .addHandler(콘솔)################################### ###### ############################################
logging.debug('디버그 메시지입니다')
logging.info('정보 메시지입니다')
logging.warning('경고 메시지입니다')
화면에 인쇄:
root : INFO 정보 메시지입니다
root : WARNING 경고 메시지입니다
./myapp .log 파일의 내용 is:
2009년 5월 24일 일요일 21:48:54dem2.py[line:11] DEBUG디버그 메시지입니다
2009년 5월 24일 일요일 21:48:54dem2.py[line:12] INFO 이것은 정보 메시지입니다
Sun, 24 May 2009 21:48:54dem2.py[line:13] WARNING 경고 메시지입니다
4.logging 로그 반환 나가기
logging.handler에서 로깅 가져오기 import RotatingFileHandler################################## ## ######################################### #### ####RotatingFileHandler를 정의하여 최대 5개의 로그 파일을 백업합니다. 각 로그 파일의 최대 개수는 10MRthandler = RotatingFileHandler('myapp.log', maxBytes=10*1024*1024, backupCount=5)
Rthandler 입니다. setLevel(logging.INFO)
formatter = log.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
Rthandler.setFormatter(formatter)
logging . getLogger('').addHandler(Rthandler)################################## ## ######################################### #### ###
위 예시와 이번 예시에서 볼 수 있듯이 로깅은 로그 처리를 위한 메인 객체를 가지며, addHandler를 통해 기타 처리 메소드가 추가된다.
로깅을 위한 여러 가지 핸들 메소드는 다음과 같습니다.
logging.StreamHandler: 로그는 sys.stderr, sys.stdout 또는 파일 로깅일 수 있는 스트림으로 출력됩니다. FileHandler: 로그는
파일 로그 롤백 방법으로 출력됩니다. 실제 사용에서는 RotatingFileHandler 및 TimedRotatingFileHandler가 있습니다. 사용된 로깅.핸들러.BaseRotatingHandler 로깅.핸들러.RotatingFileHandler login.handlers.TimedRotatingFileHandler
logging.handlers.SocketHandler: TCP/ip 소켓에 원격으로 로그 출력
logging.handlers.DatagramHandler: UDP 소켓에 원격으로 로그 출력
logging.handlers.SMTPHandler: 로그를 이메일 주소
logging.handlers.SysLogHandler로 원격 출력: syslog
logging.handlers.NTEventLogHandler에 출력 기록: Windows NT/2000/XP
logging.handlers.MemoryHandler의 이벤트 로그에 로그를 원격으로 출력합니다. 로그는 메모리
logging.handlers.HTTPHandler의 지정된 버퍼로 출력됩니다. "GET" 또는 "POST"를 통해 HTTP 서버로 원격 출력
StreamHandler, FileHandler는 일반적으로 사용되는 로그 처리 방식이므로 로깅 모듈에 직접 포함되고 그 외의 방식도 포함됨 login.handlers 모듈에서
위에서 언급한 다른 처리 방법을 사용하는 방법은 python2.5 매뉴얼을 참조하세요!
5.logging.config 모듈을 통해 로그를 구성합니다.
#logger.conf
################ # ######################### [로거]
keys=root,example01,example02
[logger_root]
level=DEBUG
handlers=hand01,hand02
[logger_example01]
handlers=hand01,hand02
qualname=example01
propagate=0
[ logger_example02]
handlers=hand01,hand03
qualname=example02
propagate=0
###################### # ####################[핸들러]
keys=hand01,hand02,hand03
[handler_hand01]
class=StreamHandler
level=INFO
formatter=form02
args=(sys.stderr,)
[handler_hand02]class=FileHandler
level=DEBUG
포맷터 =form01
args=('myapp.log', 'a')
[handler_hand03]class=handlers.RotatingFileHandler
level=INFO
formatter=form02
args= ( 'myapp.log', 'a', 10*1024*1024, 5)
######################### ## ################ [포맷터]
keys=form01,form02
[formatter_form01]
format=%(asctime)s %(파일 이름 )s[line:%(lineno)d] %(levelname)s %(message)s
datefmt=%a, %d %b %Y %H:%M:%S
[ formatter_form02]
format=%(name)-12s: %(levelname)-8s %(message)s
datefmt=
logging 가져오기import log.config
logging.config 파일 구성( "logger.conf")
logger = login.getLogger("example01")
logger.debug('디버그 메시지입니다.')
logger.info('정보 메시지입니다. ')
logger.warning('경고 메시지입니다')
import loginimport log.config
logging.config.fileConfig("logger.conf")
logger = login.getLogger(" example02")
logger.debug('디버그 메시지입니다')
logger.info('정보 메시지입니다')
logger.warning('경고 메시지입니다')
6. 로깅은 스레드로부터 안전합니다
위 내용은 Python 모듈에서 로깅을 배우는 내용입니다. 자세한 관련 글은 PHP 중국어 홈페이지(www.php)를 참고해주세요. .cn)!