Mercurial > prosody-modules
annotate mod_log_json/README.markdown @ 5874:f8b9095f7862
mod_compat_roles: Fix attempt to index a nil value #1847
permissions[] is not a map with role names as keys since 817bc9873fc2
but instead a level with host names were added. This was likely an
oversight.
Refactored towards railroad.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 23 Mar 2024 15:44:13 +0100 |
parents | 4356088ad675 |
children |
rev | line source |
---|---|
3735 | 1 --- |
2 summary: JSON Log Sink | |
3 --- | |
4 | |
5 Conifiguration | |
6 ============== | |
7 | |
3745
e43a82ddde12
mod_log_json/README: Add a sentence about the first example
Kim Alvefur <zash@zash.se>
parents:
3736
diff
changeset
|
8 Here we log to `/var/log/prosody/prosody.json`: |
e43a82ddde12
mod_log_json/README: Add a sentence about the first example
Kim Alvefur <zash@zash.se>
parents:
3736
diff
changeset
|
9 |
3735 | 10 ``` {.lua} |
11 log = { | |
12 -- your other log sinks | |
13 info = "/var/log/prosody/prosody.log" | |
14 -- add this: | |
15 { to = "json", filename = "/var/log/prosody/prosody.json" }; | |
16 } | |
17 ``` | |
18 | |
3746 | 19 ## UDP |
20 | |
21 Alternatively, it can send logs via UDP: | |
22 | |
23 ```lua | |
24 log = { | |
25 { to = "json", udp_host = "10.1.2.3", udp_port = "9999" }; | |
26 } | |
27 ``` | |
28 | |
3735 | 29 Format |
30 ====== | |
31 | |
32 JSON log files consist of a series of `\n`-separated JSON objects, | |
33 suitable for mangling with tools like | |
34 [`jq`](https://stedolan.github.io/jq/). | |
35 | |
3736
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
36 Example (with whitespace and indentation for readability): |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
37 |
3735 | 38 ``` {.json} |
3736
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
39 { |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
40 "args" : [], |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
41 "datetime" : "2019-11-03T13:38:28Z", |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
42 "level" : "info", |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
43 "message" : "Client connected", |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
44 "source" : "c2s55f267f5b9d0" |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
45 } |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
46 { |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
47 "args" : [ |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
48 "user@example.net" |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
49 ], |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
50 "datetime" : "2019-11-03T13:38:28Z", |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
51 "level" : "debug", |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
52 "message" : "load_roster: asked for: %s", |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
53 "source" : "rostermanager" |
3784bbcbb8ff
mod_log_json: Prettify JSON for readability
Kim Alvefur <zash@zash.se>
parents:
3735
diff
changeset
|
54 } |
3735 | 55 ``` |
56 | |
57 `datetime` | |
58 : [XEP-0082]-formatted timestamp. | |
59 | |
60 `source` | |
61 : Log source, usually a module or a connected session. | |
62 | |
63 `level` | |
64 : `debug`, `info`, `warn` or `error` | |
65 | |
66 `message` | |
67 : The log message in `printf` format. Combine with `args` to get the | |
68 final message. | |
69 | |
70 `args` | |
71 : Array of extra arguments, corresponding to `printf`-style `%s` | |
72 formatting in the `message`. | |
4462
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
73 |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
74 Formatted message |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
75 ----------------- |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
76 |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
77 If desired, at the obvious expense of performance, the formatted version of |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
78 the string can be included in the JSON object by specifying the `formatted_as` |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
79 key in the logger config: |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
80 |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
81 ``` {.lua} |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
82 log = { |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
83 -- ... other sinks ... |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
84 { to = "json", formatted_as = "msg_formatted", filename = "/var/log/prosody/prosody.json" }; |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
85 } |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
86 |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
87 ``` |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
88 |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
89 This will expose the formatted message in the JSON as separate `msg_formatted` |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
90 key. It is possible to override existing keys using this (for example, the |
4356088ad675
mod_log_json: allow logging of formatted message
Jonas Schäfer <jonas@wielicki.name>
parents:
3746
diff
changeset
|
91 `message` key), but not advisible. |