File locking and logging

Discussion in 'Python' started by Kamus of Kadizhar, Dec 3, 2004.

  1. Thanks to Robert Brewer, I got enough insight into logging to make it work....

    Now I have another issue: file locking. Sorry if this is a very basic
    question, but I can't find a handy reference anywhere that mentions this.

    When a logger opens a log file for append, is it automatically locked so
    other processes cannot write to it? And what happens if two or more
    processes attempt to log an event at the same time?

    Here's my situation. I have two or three workstations that will log an
    event (the playing of a movie). The log file is NFS mounted and all
    workstations will use the same log file. How is file locking implemented?
    Or is it?

    I've read through the various logger doc pages and this is never mentioned.

    The logging code that works (for me at least) is this:

    logging.basicConfig()
    logFile = logging.handlers.RotatingFileHandler("/var/log/user/movies.log",'a',2000,4)
    logFile.setLevel(logging.INFO)
    formatter = logging.Formatter(hostname + ' %(asctime)s %(message)s',datefmt='%Y-%m-%d.%H:%M')
    logFile.setFormatter(formatter)
    logging.getLogger('').addHandler(logFile)
    logging.warning(movieName)
    logFile.flush()
    logFile.close()

    Any thoughts are appreciated....

    Thanks,

    --Kamus

    --
    o |
    o__ >[] | A roadie who doesn't ride a mountain bike has no soul.
    ,>/'_ /\ | But then a mountain biker who doesn't ride a road bike has no legs...
    (_)\(_) \ \ | -Doug Taylor, alt.mountain-bike
    Kamus of Kadizhar, Dec 3, 2004
    #1
    1. Advertising

  2. Kamus of Kadizhar

    Vinay Sajip Guest

    Kamus of Kadizhar <> wrote in message news:<>...
    > Thanks to Robert Brewer, I got enough insight into logging to make it work....
    >
    > Now I have another issue: file locking. Sorry if this is a very basic
    > question, but I can't find a handy reference anywhere that mentions this.
    >
    > When a logger opens a log file for append, is it automatically locked so
    > other processes cannot write to it? And what happens if two or more
    > processes attempt to log an event at the same time?
    >
    > Here's my situation. I have two or three workstations that will log an
    > event (the playing of a movie). The log file is NFS mounted and all
    > workstations will use the same log file. How is file locking implemented?
    > Or is it?
    >


    No file locking is attempted by current logging handlers with respect
    to other processes - an ordinary open() call is used. Within a given
    Python process, concurrency support is is provided through threading
    locks. If you need bullet-proof operation in the scenario where
    multiple workstations are logging to the same file, you can do this
    through having all workstations log via a SocketHandler to a
    designated node, where you run a server process which locally logs to
    file events received across the network. There is a working example of
    this in the Python 2.4 docs.

    Best regards,


    Vinay Sajip
    Vinay Sajip, Dec 3, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Stefan Siegl
    Replies:
    0
    Views:
    949
    Stefan Siegl
    Aug 27, 2003
  2. Christoph Haas
    Replies:
    0
    Views:
    440
    Christoph Haas
    Jun 12, 2006
  3. Christoph Haas
    Replies:
    1
    Views:
    448
    Vinay Sajip
    Jun 14, 2006
  4. Timasmith
    Replies:
    4
    Views:
    452
    Bjorn Borud
    Nov 1, 2006
  5. Royan
    Replies:
    1
    Views:
    1,433
    Andrea Francia
    Apr 1, 2008
Loading...

Share This Page