Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Linux에서 윈도우의 OutputDebugString 대신 사용할 수 있는 syslog

윈도우 응용 프로그램을 개발하다 보면 OutputDebugString을 심심치 않게 사용하게 되는데요. 리눅스로 오면 저 API를 뭘로 대체해야 할지 고민하게 됩니다. 제 생각에는 가장 적합한 것이 바로 syslog였습니다.

#include <syslog.h> 
#include <stdarg.h> 

void syslog(int priority, const char *format, ...);
void vsyslog(int priority, const char *format, va_list ap); 

보는 바와 같이 포매팅도 기본적으로 제공하기 때문에 사용법도 편리합니다. 일단 저걸로 로그를 남겼으면 "Dbgview.exe"처럼 확인을 할 수 있어야 하는데요, 이를 위해 tail 명령어를 사용할 수 있습니다.

tail 명렁어로 log를 보는 법
; https://jusunglee.tistory.com/entry/%EB%A1%9C%EA%B7%B8%EB%A5%BC-%EB%B3%B4%EB%8A%94%EB%B2%95-log

$ cd /var/log
$ tail -f syslog

게다가 syslog/vsyslog는 프로세스 명을 자동으로 붙여주기 때문에 grep을 함께 연동하는 것이 좋습니다. 가령 .NET Core로 만들어진 응용 프로그램이라면 프로세스 명이 "dotnet"일 것이므로 다음과 같이 연결하면 됩니다.

$ tail -f syslog | grep dotnet




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]





[최초 등록일: ]
[최종 수정일: 5/17/2019 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 



2019-05-24 06시08분
하루 지나고 나니 "tail -f" 명령어의 출력이 없습니다. 회사 동료가 ^^ "tail -F"를 추천하는데, "even if the file is rotated" 상황에서도 잘 동작하는 거라고 합니다.

https://tldr.ostera.io/tail


정성태

... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
11973정성태7/4/20191533Linux: 21. 리눅스에서 공유 라이브러리가 로드되지 않는다면?
11972정성태7/3/20191850.NET Framework: 847. JAVA와 .NET 간의 AES 암호화 연동파일 다운로드1
11971정성태7/3/20191700개발 환경 구성: 447. Visual Studio Code에서 OpenCvSharp 개발 환경 구성
11970정성태7/2/20191406오류 유형: 552. 웹 브라우저에서 파일 다운로드 후 "Running security scan"이 끝나지 않는 문제
11969정성태7/7/20191347Math: 63. C# - 3층 구조의 신경망파일 다운로드1
11968정성태7/1/20193599오류 유형: 551. Visual Studio Code에서 Remote-SSH 연결 시 "Opening Remote..." 단계에서 진행되지 않는 문제 [1]
11967정성태7/1/20191417개발 환경 구성: 446. Synology NAS를 Windows 10에서 iSCSI로 연결하는 방법
11966정성태6/30/20191393Math: 62. 활성화 함수에 따른 뉴런의 출력을 그리드 맵으로 시각화파일 다운로드1
11965정성태6/30/20191475.NET Framework: 846. C# - 2차원 배열을 1차원 배열로 나열하는 확장 메서드파일 다운로드1
11964정성태6/30/20191896Linux: 20. C# - Linux에서의 Named Pipe를 이용한 통신
11963정성태6/29/20191771Linux: 19. C# - .NET Core Unix Domain Socket 사용 예제
11962정성태6/27/20191163Math: 61. C# - 로지스틱 회귀를 이용한 선형분리 불가능 문제의 분류파일 다운로드1
11961정성태6/27/2019947Graphics: 37. C# - PLplot - 출력 모음(Family File Output)
11960정성태6/27/20191320Graphics: 36. C# - PLplot의 16색 이상을 표현하는 방법과 subpage를 이용한 그리드 맵 표현
11959정성태6/27/20191077Graphics: 35. matplotlib와 PLplot의 한글 처리
11958정성태6/25/20192635Linux: 18. C# - .NET Core Console로 리눅스 daemon 프로그램 만드는 방법 [1]
11957정성태6/24/20193035Windows: 160. WMI 쿼리를 명령행에서 간단하게 수행하는 wmic.exe [1]
11956정성태6/24/20192175Linux: 17. CentOS 7에서 .NET Core Web App 실행 환경 구성 [1]
11955정성태6/20/20191567Math: 60. C# - 로지스틱 회귀를 이용한 분류파일 다운로드1
11954정성태6/20/20192044오류 유형: 550. scp - sudo: no tty present and no askpass program specified
11953정성태6/20/20191282오류 유형: 549. The library 'libhostpolicy.so' required to execute the application was not found in '...'
11952정성태6/20/20191591Linux: 16. 우분투, Centos의 Netbios 호스트 이름 풀이 방법
11951정성태6/20/20191924오류 유형: 548. scp 연결 시 "Permission denied" 오류 및 "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" 경고
11950정성태6/18/20192065.NET Framework: 845. C# - 윈도우 작업 관리자와 리소스 모니터의 메모리 값을 구하는 방법
11949정성태6/18/20191105오류 유형: 547. CoreCLR Profiler 예제 프로젝트 빌드 시 컴파일 오류 유형
11948정성태6/17/20191314Linux: 15. 리눅스 환경의 Visual Studio Code에서 TFS 서버 연동
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...