본문 바로가기

python / same log, mutiple logging (동일한 로그가 여러 번 찍힐 때) python log duplication 파이썬 로깅할 때 동일한 로그가 여러 번 찍히는데 아래와 같은 코드로 방지할 수 있습니다. if not logger.handlers: #... #이 경우에만 logger 생성한다. return logger logger.handlers가 없는 경우에만 logger를 생성해서 리턴하는 방식인데요. 여러 가지 방법으로 동일한 로그가 찍히는 것을 방지할 수 있는데 그중에서 간편한 방법에 속하는게 아닌가 싶네요 !!! 후처리 하지 마시고 한 번씩만 기록하도록 하는게 더 좋을 것 같아요. 로그가 정말 많이 쌓인다면 용량도 커질꺼고요. 처리하는데에도 시간과 비용이 소모되니까요. 더보기
파이썬 책이 많아졌네요 in 교보 얼마전에 교보문고에 가서 책을 구경했는데요. 파이썬 책이 참 많아 졌다고 느꼈어요. 아마도 머신러닝이 많은 관심을 받아서 자연스럽게 파이썬 관련 책들이 늘어난게 아닐까요? 아무튼 교보에서 파이썬 관련된 책들을 몇 권 찍어봤어요. 점프투파이썬도 있더라고요 !! 제가 처음 파이썬을 공부할 때 점프투파이썬을 웹으로 봤었거든요. 제일 깔끔한 것 같아요. 파이썬을 주로 사용하고 있는 저는 파이썬 책이 늘어난게 기쁘더라고요. 앞으로 국내에서 많은 파이썬 개발자들이 늘어나길 기대합니다. :-) 더보기
How to send message to Slack channel using python code AWS Lambda Python 예제를 보면 cloudwatch-alarm-to-slack-python 가 있습니다. 이름에서도 알 수 있듯이 Cloudwatch 에서 알람이 발생하면 Slack으로 메세지를 보내주는 예제입니다. 저도 사용하고 있고 꽤 유용해요 !! 이번 포스팅에서는 이 예제를 사용해서 Lambda가 아닌 환경에서 Python 코드를 사용해서 Slack에 메세지를 보내는 것을 정리해보려고 합니다. 1. Slack에 메세지를 보내기 위해서는 Incoming WebHooks URL이 필요합니다. 하나 만들어주세요. - https://YOUR-TEAM-URL.slack.com/apps/search?q=incomming 위 주소에 접속해보면 제일 처음에 나오는 것이 Incomming WebHoo.. 더보기
locust.io basic test Locust라는 오픈소스를 활용해서 부하테스트를 해봤어요. (site : http://locust.io/, documentation : http://docs.locust.io/en/latest/) JMeter가 대표적이긴 한데요. 파이썬 기반으로 옮기고 싶었고 기능이 많지 않아도 부하만 잘 걸어줄 수 있으면 좋겠다고 생각했거든요. 아무튼 Locust를 사용해본 내용을 간단하게나마 정리해둡니다. 1. install pip install locustio 2. locust file create documentation 을 참고하셔서 테스트를 코드로 만들면 됩니다. 3. execute 단일 환경에서 부하를 발생할 때에는 locust -f locust_file.py --host=domain_name 으로 실행하면.. 더보기
Python Performance 05 - list, dqueue 1. Python Performance 01 - String Concatenation : http://ngee.tistory.com/710 2. Python Performance 02 - Loops : http://ngee.tistory.com/711 3. Python Performance 03 - Eliminate Dots : http://ngee.tistory.com/712 4. Python Performance 04 - Call Function : http://ngee.tistory.com/7135. Python Performance 05 - List, Dqueue : http://ngee.tistory.com/799 파이썬 성능과 관련된 포스팅을 모아두려고 합니다. 다섯 번째는 List와 dque.. 더보기
Python Performance 04 - Call Function 1. Python Performance 01 - String Concatenation : http://ngee.tistory.com/710 2. Python Performance 02 - Loops : http://ngee.tistory.com/711 3. Python Performance 03 - Eliminate Dots : http://ngee.tistory.com/712 4. Python Performance 04 - Call Function : http://ngee.tistory.com/713 5. Python Performance 05 - List, Dqueue : http://ngee.tistory.com/799 파이썬 성능과 관련된 포스팅을 모아두려고 합니다. 네 번째는 함수를 적게 부르도.. 더보기
Python Performance 03 - Eliminate Dots 1. Python Performance 01 - String Concatenation : http://ngee.tistory.com/710 2. Python Performance 02 - Loops : http://ngee.tistory.com/711 3. Python Performance 03 - Eliminate Dots : http://ngee.tistory.com/712 4. Python Performance 04 - Call Function : http://ngee.tistory.com/713 5. Python Performance 05 - List, Dqueue : http://ngee.tistory.com/799 파이썬 성능과 관련된 포스팅을 모아두려고 합니다. 세 번째는 dot(.) 을 줄.. 더보기
Python Performance 02 - Loops 1. Python Performance 01 - String Concatenation : http://ngee.tistory.com/710 2. Python Performance 02 - Loops : http://ngee.tistory.com/711 3. Python Performance 03 - Eliminate Dots : http://ngee.tistory.com/712 4. Python Performance 04 - Call Function : http://ngee.tistory.com/713 5. Python Performance 05 - List, Dqueue : http://ngee.tistory.com/799 파이썬 성능과 관련된 포스팅을 모아두려고 합니다. 두 번째는 Loop 처리를 어.. 더보기
Python Performance 01 - String Concatenation 1. Python Performance 01 - String Concatenation : http://ngee.tistory.com/710 2. Python Performance 02 - Loops : http://ngee.tistory.com/711 3. Python Performance 03 - Eliminate Dots : http://ngee.tistory.com/712 4. Python Performance 04 - Call Function : http://ngee.tistory.com/713 5. Python Performance 05 - List, Dqueue : http://ngee.tistory.com/799 파이썬 성능과 관련된 포스팅을 모아두려고 합니다. 첫 번째는 string을 결합.. 더보기
wsgi - error log write (에러로그에 출력하기) wsgi로 서버쪽 스크립트를 작성한 경우 cgi 처럼 sys.stderr.write("에러 내용") 하면 제대로 에러로그에 출력되지 않습니다. def application(environ, start_response): environ['wsgi.errors'].write("에러내용") 요런 식으로 하면 잘 출력됩니다. 더보기
웹 서버 로그에 프린트문 출력하기 - apache, error log, print cgi 폴더에 작성하지만, cgi와는 별 관계는 없어요. 그냥 cgi 폴더를 web으로 변경해야 하나, 고민중입니다. 아무튼 !! 이번에는 apache error log에 출력하는 방법에 대해서, 작성해보려구요. 일단 코드 부터 보시죠 !! 1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 import sys 5 6 print "Content-type: text/html\n\n" 7 8 sys.stderr.write("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") 4번째 줄에서 sys 모듈을 import 해줬구요. 6번째는 cgi 사용을 위한 것이구요. 8번째 줄에서 sys 모듈을 이용해서 아파치 error log에 작성하는 부분입.. 더보기
python parallel (파이썬 병렬) (3) - 사용하기 안녕하세영. python parallel에 대한 내용은 이번 4번째 포스팅이 마지막이 델 것 같네요. 그다지 어려운 사용 방법이 아니기 때문에.. 간단하게 예시를 뜯어 보는 것도 좋겠다 싶어서. python parallel 홈페이지에서 다운 받아서 압축 푸신 폴더에 있는 예제를 가지고 사용하는 방법에 대해서 적어보겠습니다. 예제는 http://www.parallelpython.com/에서 다운받아서 사용하였습니다. 예제 파일 주소 ....../pp-1.6.2/examples/sum_primes.py 파일을 열어보시면 간단하게 되어 있는데요. 먼저 import 부분을 살펴보면 다음과 같습니다. import mathimport sysimport pp 3개의 import 문이 있구요. import pp 요 부.. 더보기
python parallel (파이썬 병렬) (2) - 실행하기 아 python parallel에 대해서 적어보기로 한게 진짜 오래전 일이군요. 다시 조금 작성해볼까 합니당 ㅎ Python Parallel 관련 포스팅 python parallel (파이썬 병렬) : http://ngee.tistory.com/77python parallel (파이썬 병렬) (1) 설치하기 : http://ngee.tistory.com/91 앞선 포스팅에서 python parallel에 대해서 잠깐 살펴보고, 설치하는 것까지 완료했습니다. 그럼 실행을 시켜야 겠죠? 1. ppserver 실행하기. python parallel은 ppserver를 통해서 병렬처리를 지원합니다. ppserver는 앞선 포스팅에서 제대로 설치하셨으면, 자동으로 깔려 있습니다. 그럼 어케 실행하나영. 당연히 p.. 더보기
python parallel (파이썬 병렬) (1) - 설치하기 안녕하세용. 요즘에 Python Parallel을 사용하게 되면서 부터 .. 정리해야지 해야지 했는데. 조금씩 적어 두려구요. 첫번째는 설치죠 !! 일단은 설치죠 !!! 일단은 Python Parallel 홈페이지 : http://www.parallelpython.com/ 방문하셔서 Download를 합시당 !! 가장 최신 버전이 pp-1.6.2 이구요. 이걸 다운 받아서 리눅스에 넘겨 줍시당 !! 저 같은 경우는 윈도우에서 다운받아서 주로 winscp로 리눅스로 넘겨주는데요.. (생각해보니 왠 뻘짓인가 싶네요) 적당한 폴더에 다운로드 하신뒤에 압축을 풉니당. (저는 tar.gz을 받았어요.) 1. 압축 풀기용 명령어 : tar -xzvf pp-1.6.2.tar.gz Figure 1은 압축 풀고.. 어떠.. 더보기
python parallel (파이썬 병렬) 안녕하세용? 오늘은 파이썬 병렬처리 프로그래밍에 대해서 간략하게 적어볼까 합니다. 우리가 듀얼코어를 사용한지는 꽤 많은 시간이 지났습니다. 현재는 쿼드코어도 많이 사용되고 있고, 옥타코어도 출시되어 일부 사용자가 있을 것으로 생각됩니다. 코어의 갯수가 많다는 것은 즉 연산을 빠르게 할 수 있다는 말이되고(하나로 하던걸 두개로 나눠서 하니깐) 개발자 분들은 이러한 코어들을 충분히 활용할 수 있는 방식으로 프로그래밍을 해야 하는 시대인것 같습니다. 간단하게 말해서 병렬처리 프로그래밍 기법이 더욱 중요해 질 것으로 생각됩니다. 몇일전까지만 해도 사실 저는 병렬처리 프로그래밍은 MPI(http://www.mcs.anl.gov/research/projects/mpi), OpenMP(http://openmp.org.. 더보기
malformed header from script 안녕하세영?? malformed header from script. Bad header=Input file size is 18652, 1886: script.py, referer: http://주소 python으로 스크립트를 짜다 보면 흔하게 마주칠 수 있는 에러인데요. 이걸 어떻게 해결할 수 있을까염? 일단 검토해보셔야 하는 것은 2가지 입니다. 1. 정확하게 썼는지. print "Content-type: text/html\n\n" cgi로 python 스크립트를 돌릴 때 반드시 들어가야 하는 것 아시죠?맨 뒤에 \n이 2개여야 한다는 것!!! 이것 때문에 malformed header from script 에러가 날 수도 있습니다. 2. os.system 사용하고 있는지? os.system("linu.. 더보기