Despite rather scant and unclear documentation and an effective How-To for beginners, I have grown to like PSGI and am currently using it in one of my applications. What I would like to know is how do I manage logging across a multi-node application? What is considered "best practice" regarding logging in PSGI?
1
There are 1 best solutions below
Related Questions in PERL
- Perl Command Line Interpreter crashing on exit
- Perl Regex: Merge multiple one-character substrings
- Syntax error in Perl open
- Need help in understanding perl tr command with /d
- Referencing a Schema's table batch/perl
- Retrieving filtered list of files using template toolkit
- “Badly placed ()'s” error when running loc command
- getting google contacts using shuttlecloud
- Perl Module using %EXPORT_TAGS
- get all possible permutations of words in string using perl script
- Can't locate DBI.pm in @INC with Perl
- split string into several substring using indexes
- How to find strings between two specified texts
- Getting a json from a server and assigning it to a variable
- Is there anyway to plot timeline charts in excel sheets using Spreadhseet::WriteExcel module in Perl?
Related Questions in LOGGING
- Is Log4j2 xml configuration case sensitive?
- Logback stopped logging after splitting shared config file
- logging setup best practices
- C Simple Logging Management
- OpenShift Pyramid logging to file
- Log of dependency does not show
- Node/Express access logger from request object
- How does one locate all git log messages in the git object database?
- Logging error when executing Maven SonarQube plugin
- refactor 'execute and log' pattern
- CMD specifying columns to save?
- How to get information about error from HttpContext in WCF services
- Django not logging all errors
- Empty space at beginning of rsyslog log file
- Avoid log trace of external framework J2EE
Related Questions in PSGI
- PSGI and WSDL - How "public" that WSDL?
- Perl CGI vs FastCGI
- Right Way to Fork in PSGI/Plac application (Perl)
- Configuring directory aliases in Starman (or other PSGI servers)
- Dynamic package loading under plackup with Starman
- PSGI logging (Perl)
- Why is Test::WWW::Mechanize::PSGI using a port?
- Is it possible to enforce a max upload size in Plack::Middleware without reading the entire body of the request?
- How to know when a PSGI nonblocking streaming writer is ready for more data in a PSGI compatible way?
- Do I need to convert mod_rewrite rules to Plack::Middleware::Rewrite rules if my web framework wants to support PSGI?
- Using PSGI, is it possible to change how uploaded files are named?
- Perl's PSGI/Plack and streaming response content
- Perl's BEGIN blocks in app.psgi
- How do I discover on what server the app.psgi process is running?
- Best way to run a Plack PSGI Perl application outside of Apache using FastCGI?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I recommend using Plack::Middleware::AccessLog for logging accessing and Plack::Middleware::LogDispatch for custom logging. They both in turn use the popular Log::Dispatch module.
The LogDispatch Middleware docs do not currently show you to how to use the logging object once it is set up. Here's an example:
To address the multi-node concern, you could then use Log::Dispatch::Syslog which would send logging to rsyslog which could in turn to pass the log data on to another rsyslog server. In this way, all the nodes can log to a single central logging server.
With the flexibility of Log::Dispatch, you also have the option to log both locally and remotely for redundancy if you like. The logs sent to the central server could be considered primary, and the logging done locally could be considered backup in case the central log server is down for a bit.
Using a central log server has several advantages:
I currently using Log::Dispach and Rsyslog together in this way to manage a multi-node cluster myself.