난 당신이 로깅 모듈을 사용하도록 동의하지만, 다른 답변의 일부가 보여처럼 그들이 당신이 정말로, 단지 형식 문자열을 제대로 할 수 없어 쉼표가 포함 된 메시지를 기록하는 상황을 설명하지 마십시오.
메시지 (또는 다른 입력란)의 특수 문자를 올바르게 이스케이프 처리하는 솔루션이 필요한 경우 사용자 지정 포매터를 작성하고 설정해야합니다.
logger = logging.getLogger()
formatter = MyCsvFormatter()
handler = logging.FileHandler(filename, "w")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(level)
당신은 분명히 logging.Formatter에서 상속 형식() 메소드
class MyCsvFormatter(logging.Formatter):
def __init__(self):
fmt = "%(levelname)s,%(message)s" # Set a format that uses commas, like the other answers
super(MyCsvFormatter, self).__init__(fmt=fmt)
def format(self, record):
msg = record.getMessage()
# convert msg to a csv compatible string using your method of choice
record.msg = msg
return super(MyCsvFormatter, self).format(self, record)
주보다 우선해야 MyCsvFormatter 클래스를 구현해야합니다 : 전에이 같은 짓을 한을, 하지만이 특정 코드 샘플
을 테스트하지 않았습니다
지금까지 메시지의 실제 탈출을하는 등, 여기에 하나의 가능한 접근 방식 : Python - write data into csv format as string (not file)
csv 행을 출력하는 형식의 logging.Formatter 인스턴스를 사용해야합니다. –