Software / code / prosody-modules
File
mod_log_ringbuffer/README.md @ 6302:06fbbd45ba75
mod_cloud_notify: Readme: fix links and labels that were removed in the last commit
diff --git a/mod_cloud_notify/README.md b/mod_cloud_notify/README.md
--- a/mod_cloud_notify/README.md
+++ b/mod_cloud_notify/README.md
@@ -1,3 +1,9 @@
+----
+-labels:
+-- 'Stage-Beta'
+-summary: 'XEP-0357: Cloud push notifications'
+----
+
# Introduction
This module enables support for sending "push notifications" to clients
@@ -32,15 +38,15 @@ notification to your device. When your d
it will display it or wake up the app so it can connect to XMPP and
receive any pending messages.
-This protocol is described for developers in \[XEP-0357: Push
-Notifications\].
+This protocol is described for developers in [XEP-0357: Push
+Notifications].
-For this module to work reliably, you must have \[mod_smacks\],
-\[mod_mam\] and \[mod_carbons\] also enabled on your server.
+For this module to work reliably, you must have [mod_smacks],
+[mod_mam] and [mod_carbons] also enabled on your server.
Some clients, notably Siskin and Snikket iOS need some additional
extensions that are not currently defined in a standard XEP. To support
-these clients, see \[mod_cloud_notify_extensions\].
+these clients, see [mod_cloud_notify_extensions].
# Configuration
@@ -58,18 +64,18 @@ these clients, see \[mod_cloud_notify_ex
# Internal design notes
App servers are notified about offline messages, messages stored by
-\[mod_mam\] or messages waiting in the smacks queue. The business rules
+[mod_mam] or messages waiting in the smacks queue. The business rules
outlined
[here](//mail.jabber.org/pipermail/standards/2016-February/030925.html)
are all honored[^2].
-To cooperate with \[mod_smacks\] this module consumes some events:
+To cooperate with [mod_smacks] this module consumes some events:
`smacks-ack-delayed`, `smacks-hibernation-start` and
`smacks-hibernation-end`. These events allow this module to send out
notifications for messages received while the session is hibernated by
-\[mod_smacks\] or even when smacks acknowledgements for messages are
+[mod_smacks] or even when smacks acknowledgements for messages are
delayed by a certain amount of seconds configurable with the
-\[mod_smacks\] setting `smacks_max_ack_delay`.
+[mod_smacks] setting `smacks_max_ack_delay`.
The `smacks_max_ack_delay` setting allows to send out notifications to
clients which aren't already in smacks hibernation state (because the
| author | Menel <menel@snikket.de> |
|---|---|
| date | Fri, 13 Jun 2025 10:44:37 +0200 |
| parent | 6003:fe081789f7b5 |
line wrap: on
line source
--- labels: - 'Stage-Beta' summary: 'Log to in-memory ringbuffer' ... Introduction ============ Sometimes debug logs are too verbose for continuous logging to disk. However occasionally you may be interested in the debug logs when a certain event occurs. This module allows you to store all logs in a fixed-size buffer in Prosody's memory, and dump them to a file whenever you want. # Configuration First of all, you need to load the module by adding it to your global `modules_enabled`: ``` {.lua} modules_enabled = { ... "log_ringbuffer"; ... } ``` By default the module will do nothing - you need to configure a log sink, using Prosody's usual [logging configuration](https://prosody.im/doc/advanced_logging). ``` {.lua} log = { -- Log errors to a file error = "/var/log/prosody/prosody.err"; -- Log debug and higher to a 2MB buffer { to = "ringbuffer", size = 1024*1024*2, filename_template = "debug-logs-{pid}-{count}.log", signal = "SIGUSR2" }; } ``` The possible fields of the logging config entry are: `to` : Set this to `"ringbuffer"`. `levels` : The log levels to capture, e.g. `{ min = "debug" }`. By default, all levels are captured. `size` : The size, in bytes, of the buffer. When the buffer fills, old data will be overwritten by new data. `lines` : If specified, preserves the latest N complete lines in the buffer. The `size` option is ignored when this option is set. `filename` : The name of the file to dump logs to when triggered. `filename_template` : This parameter may optionally be specified instead of `filename. It may contain a number of variables, described below. Defaults to `"{paths.data}/ringbuffer-logs-{pid}-{count}.log"`. Only one of the following triggers may be specified: `signal` : A signal that will cause the buffer to be dumped, e.g. `"SIGUSR2"`. Do not use any signal that is used by any other Prosody module, to avoid conflicts. `event` : Alternatively, the name of a Prosody global event that will trigger the logs to be dumped, e.g. `"config-reloaded"`. ## Filename variables If `filename_template` is specified instead of `filename`, it may contain any of the following variables in curly braces, e.g. `{pid}`. `pid` : The PID of the current process `count` : A counter that begins at 0 and increments for each dump made by the current process. `time` : The unix timestamp at which the dump is made. It can be formatted to human-readable local time using `{time|yyyymmdd}` and `{time|hhmmss}`. `paths` : Allows access to Prosody's known filesystem paths, use e.g. `{paths.data}` for the path to Prosody's data directory. The filename does not have to be unique for every dump - if a file with the same name already exists, it will be appended to. ## Integration with mod_debug_traceback This module can be used in combination with [mod_debug_traceback] so that debug logs are dumped at the same time as the traceback. Use the following configuration: ``` {.lua} log = { --- -- other optional logging config here -- --- { to = "ringbuffer"; filename_template = "{paths.data}/traceback-{pid}-{count}.log"; event = "debug_traceback/triggered"; }; } ``` If the filename template matches the traceback path, both logs and traceback will be combined into the same file. Of course separate files can be specified if preferred. # Compatibility 0.12 and later.