request-log-analyzer
request-log-analyzer copied to clipboard
postgres format not working (or Document correct postgres logging config)
Could someone please provide an example of their postgresql.conf, such that it produces a log file that's parseable by request-log-analyzer?
I've set log_min_duration_statement = 0 but the lines it produces (in/var/log/postgresql/postgresql-8.4-main.log) look like this: 2012-09-27 14:39:03 BST LOG: duration: 0.679 ms statement: select * from people;
whereas looking at the code the postgresql reader's regex in lib/request_log_analyzer/file_formats/postgresql.rb it wants something different:
/(#{timestamp('%Y-%m-%d %k:%M:%S')})\ \S+ \[\d+\]\:\ \[.*\]\ LOG\:\ \ \d+\:\ duration\: (.*)\ ms\ \ statement:\ (.*)/
I use the --format postgresql
option, and get the following warnings:
Warnings: teaser_check_failed: 21, no_current_request: 24
There's no info in the configure-logging wiki page.
I'm using postgres 8.4 on Ubuntu 12.04.
Any thoughts?
Nick
We built the parser based on a log snippet that was provided to us. I do know that there are some issues with the parser definition, which can cause some queries to be missed.
@nmbooker could you provide us with a logsnipet / failing test? Is only the teaser causing the problem? Are you running the default date logging config or a custom setup ?
I'm not sure what the default is. It's close to the default for Debian/Ubuntu, but with:
log_min_duration_statement = 0
in the postgresql.conf.
Here are two example 'test' lines from /var/log/postgresql-8.4-main.log :
2012-09-27 14:39:03 BST LOG: duration: 0.679 ms statement: select * from people;
2012-09-27 15:02:21 BST LOG: duration: 0.587 ms statement: select * from people
;
Note the newline before the semicolon on the second one - that reflects the fact I put a newline in the statement at the psql prompt.
Cheers,
Nick
PostgreSQL logs are really tricky to parse right now because of the newline problem. Idea: allow a file format to set it's own newline character. In PostgreSQL's case, that would be the semicolon. This would make it a lot easier to parse those logs.
Apparently we already support by specifying a LINE_DIVIDER constant on the file format class. But we are not using it yet. It also won't work with our file format autodetection script.
As autodetect is broken for postgres anyway, we can just use newlines with the autodetect and have this work nicely with the LINE_DIVIDER thing. That way someone later on can refactor the autodetect tingy to add postgres (or non newline characters) support to it.
I'm using Postgres 9.1 is this not supported?
It should be, could you provide us with a log snippet of what isn't working?
Below is the output from the r-l-a command and a snippet of my log file.
crankin@web04:/var/log/postgresql$ request-log-analyzer -f postgresql postgresql-9.1-main.log Request-log-analyzer, by Willem van Bergen and Bart ten Brinke - version 1.12.8 Website: http://railsdoctors.com
postgresql-9.1-main.log: 100% [=====================================================================================================================================] Time: 00:00:00
Request summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Processsed File: /var/log/postgresql/postgresql-9.1-main.log Parsed lines: 104 Skipped lines: 104 Parsed requests: 0 Skipped requests: 0 Warnings: teaser_check_failed: 654, no_current_request: 104
There were no requests analyzed.
Parse warnings ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Parsable lines were encountered without a header line before it. It could be that logging is not setup correctly for your application. Visit this website for logging configuration tips: http://github.com/wvanbergen/request-log-analyzer/wikis/configure-logging
Need an expert to analyze your application? Mail to [email protected] or visit us at http://railsdoctors.com. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Thanks for using request-log-analyzer!
2013-03-17 14:42:11 CDT LOG: checkpoint starting: time 2013-03-17 14:42:15 CDT LOG: checkpoint complete: wrote 17 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=3.209 s, sync=1.370 s, total=4.752 s; sync files=16, longest=0.370 s, average=0.085 s 2013-03-17 17:02:11 CDT LOG: checkpoint starting: time 2013-03-17 17:02:11 CDT LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.602 s, sync=0.003 s, total=0.610 s; sync files=4, longest=0.002 s, average=0.000 s 2013-03-18 00:00:01 CDT FATAL: sorry, too many clients already 2013-03-18 00:00:01 CDT FATAL: sorry, too many clients already 2013-03-18 11:01:16 CDT LOG: statement: ALTER TABLE "buildings" ADD COLUMN "promo_code" character varying(255) 2013-03-18 11:02:11 CDT LOG: checkpoint starting: time 2013-03-18 11:02:12 CDT LOG: checkpoint complete: wrote 8 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=1.404 s, sync=0.003 s, total=1.410 s; sync files=7, longest=0.001 s, average=0.000 s 2013-03-18 11:07:11 CDT LOG: checkpoint starting: time 2013-03-18 11:07:13 CDT LOG: checkpoint complete: wrote 12 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=2.206 s, sync=0.002 s, total=2.216 s; sync files=6, longest=0.001 s, average=0.000 s 2013-03-18 11:31:22 CDT LOG: duration: 315.436 ms statement: SELECT "units".* FROM "units" 2013-03-18 11:32:11 CDT LOG: checkpoint starting: time 2013-03-18 11:32:43 CDT LOG: checkpoint complete: wrote 163 buffers (0.3%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=32.704 s, sync=0.013 s, total=32.733 s; sync files=22, longest=0.003 s, average=0.000 s 2013-03-18 11:32:58 CDT LOG: duration: 335.919 ms statement: COMMIT 2013-03-18 11:35:31 CDT LOG: duration: 257.687 ms statement: SELECT "units".* FROM "units" WHERE ('t') ORDER BY building_id 2013-03-18 11:37:11 CDT LOG: checkpoint starting: time 2013-03-18 11:38:08 CDT FATAL: database "pangea_api_development" does not exist 2013-03-18 11:38:59 CDT LOG: checkpoint complete: wrote 542 buffers (1.1%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=108.595 s, sync=0.009 s, total=108.609 s; sync files=34, longest=0.001 s, average=0.000 s 2013-03-18 11:42:11 CDT LOG: checkpoint starting: time 2013-03-18 11:42:12 CDT LOG: checkpoint complete: wrote 6 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=1.003 s, sync=0.003 s, total=1.010 s; sync files=4, longest=0.001 s, average=0.000 s 2013-03-18 11:47:11 CDT LOG: checkpoint starting: time 2013-03-18 11:47:11 CDT LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.001 s, total=0.005 s; sync files=1, longest=0.001 s, average=0.001 s 2013-03-18 11:57:11 CDT LOG: checkpoint starting: time 2013-03-18 11:57:11 CDT LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.603 s, sync=0.002 s, total=0.608 s; sync files=3, longest=0.001 s, average=0.000 s 2013-03-18 12:07:11 CDT LOG: checkpoint starting: time 2013-03-18 12:07:11 CDT LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.000 s, total=0.004 s; sync files=1, longest=0.000 s, average=0.000 s 2013-03-18 12:12:11 CDT LOG: checkpoint starting: time 2013-03-18 12:12:11 CDT LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.602 s, sync=0.002 s, total=0.609 s; sync files=3, longest=0.001 s, average=0.000 s 2013-03-18 12:17:11 CDT LOG: checkpoint starting: time 2013-03-18 12:17:11 CDT LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.603 s, sync=0.005 s, total=0.613 s; sync files=3, longest=0.003 s, average=0.001 s 2013-03-18 12:22:11 CDT LOG: checkpoint starting: time 2013-03-18 12:22:11 CDT LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.602 s, sync=0.002 s, total=0.609 s; sync files=3, longest=0.001 s, average=0.000 s 2013-03-18 12:27:11 CDT LOG: checkpoint starting: time 2013-03-18 12:27:12 CDT LOG: checkpoint complete: wrote 6 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=1.003 s, sync=0.001 s, total=1.009 s; sync files=4, longest=0.001 s, average=0.000 s 2013-03-18 12:32:11 CDT LOG: checkpoint starting: time 2013-03-18 12:32:11 CDT LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.004 s, total=0.009 s; sync files=1, longest=0.004 s, average=0.004 s 2013-03-18 12:42:11 CDT LOG: checkpoint starting: time 2013-03-18 12:42:11 CDT LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.602 s, sync=0.001 s, total=0.609 s; sync files=3, longest=0.000 s, average=0.000 s ----- Original Message -----
From: "Bart ten Brinke" [email protected] To: "wvanbergen/request-log-analyzer" [email protected] Cc: "rankin" [email protected] Sent: Wednesday, March 20, 2013 3:57:02 AM Subject: Re: [request-log-analyzer] postgres format not working (or Document correct postgres logging config) (#125)
It should be, could you provide us with a log snippet of what isn't working? — Reply to this email directly or view it on GitHub .
I just changed my postgres config slightly so the output is a little different. Mainly adding user & data base to the line as well as logging transactions taking longer that 50 ms.
Here's a sample
2013-03-20 11:50:16 CDT FATAL: terminating connection due to administrator command 2013-03-20 11:50:16 CDT FATAL: terminating connection due to administrator command 2013-03-20 11:50:16 CDT LOG: autovacuum launcher shutting down 2013-03-20 11:50:16 CDT LOG: shutting down 2013-03-20 11:50:16 CDT LOG: checkpoint starting: shutdown immediate 2013-03-20 11:50:16 CDT LOG: checkpoint complete: wrote 0 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.000 s, sync=0.000 s, total=0.002 s; sync files=0, longest=0.000 s, average=0.000 s 2013-03-20 11:50:16 CDT LOG: database system is shut down 2013-03-20 11:50:18 CDT LOG: database system was shut down at 2013-03-20 11:50:16 CDT 2013-03-20 11:50:18 CDT [unknown] [unknown] [unknown]LOG: incomplete startup packet 2013-03-20 11:50:18 CDT LOG: autovacuum launcher started 2013-03-20 11:50:18 CDT LOG: database system is ready to accept connections 2013-03-20 11:51:27 CDT [unknown] pangea_api pangea_api_developmentLOG: duration: 74.915 ms statement: SELECT "customers".* FROM "customers" WHERE "customers"."email" = '[email protected]' LIMIT 1 2013-03-20 12:01:04 CDT LOG: received fast shutdown request 2013-03-20 12:01:04 CDT LOG: aborting any active transactions 2013-03-20 12:01:04 CDT [unknown] pangea_api pangea_api_developmentFATAL: terminating connection due to administrator command 2013-03-20 12:01:04 CDT [unknown] pangea_api pangea_api_developmentFATAL: terminating connection due to administrator command 2013-03-20 12:01:04 CDT LOG: autovacuum launcher shutting down 2013-03-20 12:01:04 CDT LOG: shutting down 2013-03-20 12:01:04 CDT LOG: checkpoint starting: shutdown immediate 2013-03-20 12:01:04 CDT LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 transaction log file(s) added, 0 removed, 0 recycled; write=0.000 s, sync=0.000 s, total=0.015 s; sync files=1, longest=0.000 s, average=0.000 s 2013-03-20 12:01:04 CDT LOG: database system is shut down 2013-03-20 12:01:06 CDT LOG: database system was shut down at 2013-03-20 12:01:04 CDT 2013-03-20 12:01:06 CDT [unknown] [unknown]LOG: incomplete startup packet 2013-03-20 12:01:06 CDT LOG: autovacuum launcher started 2013-03-20 12:01:06 CDT LOG: database system is ready to accept connections 2013-03-20 12:02:50 CDT pangea_api pangea_api_developmentERROR: prepared statement "a12" already exists 2013-03-20 12:02:50 CDT pangea_api pangea_api_developmentSTATEMENT: INSERT INTO "customers" ("approval_reason", "approved_on_propertyware", "contact_method", "contact_time", "created_at", "created_from_propertyware", "dob", "email", "first_name", "first_visit", "home_phone", "last_name", "last_schedule_attempt_at", "mobile_phone", "updated_at", "work_phone") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16) RETURNING "id" 2013-03-20 12:04:17 CDT pangea_api pangea_api_developmentLOG: duration: 165.823 ms statement: SELECT "units".* FROM "units" WHERE "units"."status" = 'Vacant' AND "units"."ready_to_lease" = 't' AND (target_rent > 0) 2013-03-20 12:04:18 CDT pangea_api pangea_api_developmentLOG: duration: 86.062 ms statement: SELECT "custom_fields".* FROM "custom_fields" WHERE "custom_fields"."record_id" IN (22, 67, 72, 118, 153, 160, 196, 208, 215, 223, 237, 247, 252, 261, 265, 287, 298, 301, 328, 400, 425, 517, 528, 534, 541, 622, 635, 636, 639, 671, 698, 704, 705, 707, 728, 749, 753, 767, 773, 781, 786, 793, 829, 933, 940, 946, 973, 1029, 1036, 1040, 1069, 1076, 1084, 1087, 1104, 1181, 1183, 1192, 1216, 1220, 1226, 1229, 1235, 1236, 1256, 1268, 1297, 1316, 1320, 1352, 1407, 1438, 1468, 1473, 1475, 1488, 1506, 1517, 1518, 1520, 1548, 1552, 1605, 1643, 1682, 1729, 1732, 1743, 1773, 1779, 1823, 1831, 1851, 1909, 2004, 2020, 2028, 2040, 2042, 2049, 2050, 2061, 2063, 2064, 2066, 2067, 2068, 2069, 2072, 2073, 2075, 2076, 2077, 2078, 2079, 2080, 2082, 2101, 2129, 2132, 2148, 2153, 2204, 2212, 2235, 2248, 2255, 2304, 2310, 2311, 2316, 2325, 2354, 2360, 2363, 2366, 2367, 2369, 2375, 2381, 2382, 2387, 2388, 2391, 2392, 2393, 2400, 2403, 2411, 2417, 2418, 2428, 2430, 2436, 2438, 2441, 2442, 2445, 2449, 2450, 2453, 2454, 2455, 2456, 2460, 2470, 2474, 2487, 2491, 2497, 2499, 2505, 2508, 2510, 2514, 2517, 2518, 2521, 2522, 2526, 2530, 2537, 2540, 2541, 2543, 2547, 2559, 2583, 2592, 2594, 2600, 2601, 2609, 2611, 2614, 2616, 2617, 2618, 2619, 2621, 2632, 2633, 2636, 2637, 2639, 2647, 2651, 2652, 2657, 2660, 2681, 2685, 2691, 2693, 2696, 2698, 2700, 2707, 2718, 2723, 2725, 2727, 2730, 2734, 2738, 2764, 2766, 2773, 2775, 2778, 2779, 2781, 2788, 2791, 2803, 2812, 2813, 2816, 2854, 2860, 2885, 2913, 2951, 2956, 2958, 2960, 2961, 2962, 2976, 2980, 2982, 2986, 2994, 2999, 3000, 3001, 3002, 3003, 3005, 3008, 3013, 3015, 3017, 3020, 3021, 3023, 3028, 3031, 3032, 3033, 3037, 3039, 3041, 3043, 3045, 3046, 3047, 3048, 3050, 3063, 3067, 3069, 3070, 3072, 3081, 3084, 3085, 3087, 3089, 3090, 3093, 3100, 3103, 3114, 3118, 3120, 3121, 3127, 3129, 3130, 3133, 3141, 3145, 3155, 3158, 3167, 3171, 3172, 3178, 3179, 3184, 3190, 3194, 3198, 3199, 3200, 3201, 3203, 3204, 3206, 3209, 3211, 3214, 3217, 3218, 3219, 3222, 3223, 3224, 3227, 3230, 3233, 3234, 3248, 3260, 3261, 3263, 3265, 3266, 3267, 3274, 3275, 3276, 3278, 3283, 3288, 3290, 3291, 3292, 3294, 3298, 3300, 3301, 3305, 3306, 3311, 3314, 3315, 3317, 3318, 3321, 3327, 3334, 3340, 3341, 3343, 3350, 3364, 3372, 3383, 3397, 3421, 3429, 3455, 3476, 3489, 3527, 3597, 3643, 3678, 3680, 3708, 3741, 3744, 3750, 3758, 3761, 3780, 3782, 3786, 3813, 3830, 3853, 3865, 3874, 3880, 3884, 3903, 3928, 3930, 3931, 3932, 3933, 3934, 3942, 3945, 3948, 3976, 3979, 4028, 4065, 4067, 4085, 4091, 4097, 4098, 4099, 4100, 4101, 4104, 4106, 4108, 4109, 4110, 4111, 4112, 4114, 4116, 4117, 4118, 4119, 4121, 4122, 4123, 4124, 4125, 4127, 4180, 4184, 4215, 4218, 4227, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4324, 4325, 4326, 4327, 4328, 4416, 4417, 4418, 4422, 4425, 4427, 4429, 4485, 4524, 4531, 4537, 4600, 4606, 4615, 4627, 4643, 4655, 4662, 4684, 4699, 4708, 4709, 4710, 4720, 4723, 4728, 4753, 4758, 4764, 4785, 4787, 4788, 4791, 4793, 4799, 4800, 4807, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4830, 4834, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4877, 4881, 4882, 4883, 4885, 4887, 4889, 4890, 4891, 4893, 4894, 4895, 4897, 4903, 4920, 4927, 4938, 4943, 4958, 4960, 4977, 4978, 4988, 4991, 4993, 4998, 5004, 5010, 5011, 5012, 5040, 5045, 5047, 5048, 5050, 5055, 5073, 5075, 5078, 5082, 5084, 5087, 5089, 5090, 5091, 5092, 5094, 5096, 5104, 5105, 5106, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5128, 5133, 5134, 5136, 5137, 5138, 5143, 5147, 5156, 5157, 5162, 5163, 5167, 5169, 5171, 5172, 5175, 5176, 5178, 5181, 5182, 5196, 5199, 5201, 5207, 5210, 5211, 5212, 5224, 5225, 5230, 5239, 5242, 5244, 5247, 5249, 5250, 5251, 5255, 5258, 5266, 5267, 5268, 5269, 5273, 5277, 5285, 5288, 5289, 5290, 5293, 5294, 5295, 5296, 5299, 5301, 5302, 5304, 5306, 5307, 5315, 5320, 5323, 5325, 5328, 5329, 5335, 5381, 5382, 5385, 5387, 5389, 5390, 5391, 5394, 5396, 5397, 5398, 5402, 5404, 5408, 5410, 5411, 5412, 5414, 5415, 5416, 5418, 5423, 5424, 5425, 5426, 5427, 5428, 5432, 5433, 5435, 5436, 5437, 5438, 5441, 5442, 5443, 5446, 5448, 5449, 5450, 5454, 5458, 5460, 5461, 5462, 5464, 5465, 5466, 5469, 5470, 5472, 5473, 5476, 5477, 5478, 5481, 5482, 5483, 5486, 5489, 5490, 5491, 5492, 5494, 5496, 5499, 5500, 5501, 5502, 5505, 5509, 5512, 5513, 5515, 5516, 5518, 5520, 5521, 5522, 5523, 5527, 5528, 5529, 5530, 5531, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5542, 5543, 5544, 5545, 5780, 5969, 5971, 5972, 5973, 5975, 5976, 5977, 5979, 5980, 5981, 5990, 5993, 5995, 5999, 6003, 6026, 6056, 6063, 6080, 6081, 6082, 6095, 6108, 6157, 6191, 6198, 6202, 6204, 6210, 6212, 6215, 6220, 6227, 6232, 6291, 6310, 6326, 6328, 6330, 6331, 6332, 6334, 6336, 6340, 6354, 6363, 6370, 6410, 6418, 6421, 6425, 6427, 6438, 6448, 6449, 6450, 6452, 6534, 6535, 6538, 6540, 6544, 6547, 6549, 6550, 6552, 6559, 6560, 6562, 6564, 6565, 6566, 6568, 6569, 6577, 6579, 6582, 6587, 6588, 6591, 6595, 6596, 6737, 6738, 6741, 6742, 6745, 6746, 6747, 6749, 6753, 6760, 6766, 6769, 6771, 6775, 6776, 6783, 6786, 6787, 6788, 6789, 6791, 6792, 6793, 6794, 6797, 6798) AND (record_type = 'unit') ----- Original Message -----
From: "Bart ten Brinke" [email protected] To: "wvanbergen/request-log-analyzer" [email protected] Cc: "rankin" [email protected] Sent: Wednesday, March 20, 2013 3:57:02 AM Subject: Re: [request-log-analyzer] postgres format not working (or Document correct postgres logging config) (#125)
It should be, could you provide us with a log snippet of what isn't working? — Reply to this email directly or view it on GitHub .
Could you repost it in a GIST?
Sorry this was abandoned but still having the issue. Here is a link to the gist.
https://gist.github.com/rankin/5970237
Is this issue still alive? I see a few users have submitted log snippets; conversely, could any developer provide a snippet of the logs that the parser was based on? It should be much easier to experiment with logging configurations if the desired output is known.
After two years 😀? No, but pull requests are always welcome!
Sent from my iPhone
On 6 nov. 2015, at 20:08, dren-fo [email protected] wrote:
Is this issue still alive? I see a few users have submitted log snippets; conversely, could any developer provide a snippet of the logs that the parser was based on? It should be much easier to experiment with logging configurations if the desired output is known.
— Reply to this email directly or view it on GitHub.