I want to use only one file to write all the logging info, but I'm afraid of a situation where 2 parts will try write simultaneously to the same file.

Is this an error log, used for debugging purposes? Or something that will contain important data you'll need to process later?

If it's the former I'd say don't worry. Writes to a file in append mode will be effectively atomic if they're under 4k (the typical write buffer size). If you write more than that you'll get blocks interspersed between writers if they write at exactly the same time. (This advice does not apply to NFS, according to the open(2) man-page on Linux, btw.)

Thus you'll only see problems if your writers are very active and are writing very large messages to the logs. If that's the case you're going to hate your SQLite implementation since it's well known to not deal well with high levels of concurrency.

-sam


In reply to Re: Writing to one file from multiple processes by samtregar
in thread Writing to one file from multiple processes by KianTern

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.