ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <PYTHON>[LOG]
    Flower in my dev/Python 2015. 9. 11. 16:42

    [LOG]


    기본적으로 파이썬에서는 logging 모듈을 제공한다.


    logging 모듈을 사용하여 로그를 남겨보고


    logging 모듈에서 제공하는 순환 함수로 로그 파일을 돌려보고


    file을 직접 열어서 로그 파일을 돌려본다.


    순환방법은 두가지..


    1. 기록되는 파일의 이름이 바뀌지 않는 logging 모듈의 순환

    2. 기록되는 파일의 이름이 조건에 의해 새로워지는 file 활용 순환


    -default logging

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    # -*- coding: utf-8 -*-
    import logging
    import logging.handlers
     
    logger = logging.getLogger('flower')
     
    FM = logging.Formatter('[%(levelname)s| %(lineno)s] %(asctime)s > %(message)s')
     
    FH = logging.FileHandler('./flower.log')
    SH = logging.StreamHandler()
     
    FH.setFormatter(FM)
    SH.setFormatter(FM)
     
    logger.addHandler(FH)
    logger.addHandler(SH)
     
    logger.setLevel(logging.DEBUG)
     
    = 0
     
    while True:
        s = 'log number : ' + str(i)
        if i == 0:
            logger.info(s)
            i += 1
        elif i == 1:
            logger.warning(s)
            i += 1
        elif i == 2:
            logger.error(s)
            i += 1
        elif i == 3:
            logger.critical(s)
            i += 1
        elif i == 4:
            logger.debug(s)
            i += 1
        elif i == 5:
            logger.info(s)
            i += 1
        else:
            i = 0
    cs


    -rotation_1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    # -*- coding: utf-8 -*-
     
    import logging
    import logging.handlers
     
    fName = './flower.log'
    fCnt = 5
     
    logger = logging.getLogger('flower')
     
    FM = logging.Formatter('[%(levelname)s %(lineno)s] %(asctime)s > %(message)s')
     
    fSize = 1024 * 1024       #1MB
    #fSize = 1024 * 1024 * 10  #10MB
    #fSize = 1024 * 1024 * 100 #100MB
     
    FH = logging.handlers.RotatingFileHandler(fName, maxBytes=fSize, backupCount=fCnt)
    SH = logging.StreamHandler()
     
    FH.setFormatter(FM)
    SH.setFormatter(FM)
     
    logger.addHandler(FH)
    logger.addHandler(SH)
     
    = 0
     
    while True:
        s = 'log number : ' + str(i)
        if i == 0:
            logger.info(s)
            i += 1
        elif i == 1:
            logger.warning(s)
            i += 1
        elif i == 2:
            logger.error(s)
            i += 1
        elif i == 3:
            logger.critical(s)
            i += 1
        elif i == 4:
            logger.debug(s)
            i += 1
        elif i == 5:
            logger.info(s)
            i += 1
        else:
            i = 0
    cs


    위에서는 logging 모듈을 사용했고 아래에서는


    파일을 열고 쓰는 기본(?) 방식이다.


    (내가 원하는 것을 찾지 못하여..)


    -rotation_2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    # -*- coding: utf-8 -*-
     
    import os
    import random
    from time import localtime, strftime, sleep
     
    DP = '/home'
    FN = 'flower.log'
    LOG = 'Success!'
    fCnt = 0
     
    fName = os.path.join(DP, (strftime('%Y%m%d%H%M%S_', localtime()) + FN))
     
    while True:
        if fCnt == 0:
            f = open(fName, 'a')
        f.write(LOG + '\n')
        fCnt += 1
        #sec = random.randrange(0, 3)
        #sleep(sec)
        if fCnt == 3000:
            f.close()
            fName = os.path.join(DP, (strftime('%Y%m%d%H%M%S_', localtime()) + FN))
            fCnt = 0
    cs


    'Flower in my dev > Python' 카테고리의 다른 글

    <PYTHON>[개발관련패키지]  (0) 2015.11.17
    <PYTHON>[pip 설치 01]  (0) 2015.11.17
    <PYTHON>[pygoogle]  (0) 2015.09.09
    <PYTHON>[pygeoip]  (0) 2015.09.09
    <PYTHON>[cPickle][msgpack][marshal]  (0) 2015.09.09

    댓글

Designed by Tistory.