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
- MODx Create dynamic frontend page / display manager page without login
- How to get a list of all user groups in Modx Revolution
- MODx template variable image make downloadable
- preg_replace not working in snippet
- How to name a volume using a docker-compose.yml file?
- Send Mail from MODx Template
- How to debug modx, which snippets, processors etc were called
- how to use conditional output filter for date field
- Wayfinder closing tags
- What is causing this modx error?
Related Questions in LOGGING
- MODx Create dynamic frontend page / display manager page without login
- How to get a list of all user groups in Modx Revolution
- MODx template variable image make downloadable
- preg_replace not working in snippet
- How to name a volume using a docker-compose.yml file?
- Send Mail from MODx Template
- How to debug modx, which snippets, processors etc were called
- how to use conditional output filter for date field
- Wayfinder closing tags
- What is causing this modx error?
Related Questions in PSGI
- MODx Create dynamic frontend page / display manager page without login
- How to get a list of all user groups in Modx Revolution
- MODx template variable image make downloadable
- preg_replace not working in snippet
- How to name a volume using a docker-compose.yml file?
- Send Mail from MODx Template
- How to debug modx, which snippets, processors etc were called
- how to use conditional output filter for date field
- Wayfinder closing tags
- What is causing this modx error?
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 # Hahtags
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.