로그파일을 어떻게 만드시나요?

yundorri의 이미지

로그파일을 만들기 위해서

system( "echo ... > /tmp/log" ) 로 하거나,
fprintf( fp, "날짜, 시간....", ... ) 로 사용해 왔습니다.

그런데 이놈의 로그파일이 너무 커져서 최근 로그한
20000 라인 정도만 보관하고 싶을 때는 어떻게 하는게
가장 좋을까요?

전체를 읽었다가 가장 처음 라인을 삭제하고 다시 전부를
Write 했더니 시간이 너무 걸리고...

파일을 다른 이름으로 임시저장했다가 tail -n 20000 임시파일
한 뒤 이름을 로그파일로 변경해보기도 했지만

어떤것도 신통치 않습니다. 좋은 방법이 없을까요????

mach의 이미지

로그출력루틴에 라인카운트를 넣어 적절히 파일을 열고/닫는(일종의 로그로테이트) 것은 어떨까요?
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

yundorri의 이미지

로그할 때 라인 카운트를 전역으로 저장하고 있다가
지정한 카운트를 넘기면 그 때 어떻게 한다는 말씀이지요?

근데, 그 때 어떻게 해야 로드가 적게 걸릴까요?
다른 이름의 파일을 열어서 20000 정도를 두번째 줄 부터 Write 하려면
로드가 꽤 되더라구요. 참고로, 파일 사이즈는 20000 라인이 다 차면
약 2MB 정도 됩니다.

그리고 Log는 1초에도 여러번 되는 경우도 발생을 합니다.

만약, 힘들다면 가장 최근 로그를 최하단에 오지 않고 최상단으로
그러니까, 역순으로 한다면 좀 쉬운 방법이 있을까요?

johlim의 이미지

log Write는 그대로 사용하시고
idle time때 도는 Task에서 stat 로 size 확인하시고
기준치 이상이면 뒷부분만 복사하면 안될까요 ?

A better tomorrow

lim jong hoan

A better tomorrow

yundorri의 이미지

사실, idle time이라는게 없어서요.
log할 장비는 쉴 새 없이 돌아가거든요.

장비와 장비를 control하는 pc간의 interface를 log하는거라서
언제 어느시점에 로그가 들어올지 알 수가 없네요.

파일 포인터를 라인단위로 옮기는건 어떨까요?
fseek등을 이용해서 말이죠.

ssehoony의 이미지

최근 20000 라인은 남기다 라는 것을 포기 하시고
그냥 일반적으로 사용하는 방법인
log rotate 를 하시고 최근 rotate 된 파일은 일정 기간
보관하시는 방법을 하시는게 좋을 듯 하군요.

yundorri의 이미지

친절히 알려 주셔서 감사합니다.

게시판도 검색해 봤는데 그게 젤 좋은 방법같군요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.