| ... | ... |
@@ -109,6 +109,17 @@ Use higher precision time stamps:: |
| 109 | 109 |
|
| 110 | 110 |
journalctl -f -o short-precise --unit devstack@n-cpu.service |
| 111 | 111 |
|
| 112 |
+By default, journalctl strips out "unprintable" characters, including |
|
| 113 |
+ASCII color codes. To keep the color codes (which can be interpreted by |
|
| 114 |
+an appropriate terminal/pager - e.g. ``less``, the default):: |
|
| 115 |
+ |
|
| 116 |
+ journalctl -a --unit devstack@n-cpu.service |
|
| 117 |
+ |
|
| 118 |
+When outputting to the terminal using the default pager, long lines |
|
| 119 |
+appear to be truncated, but horizontal scrolling is supported via the |
|
| 120 |
+left/right arrow keys. |
|
| 121 |
+ |
|
| 122 |
+See ``man 1 journalctl`` for more. |
|
| 112 | 123 |
|
| 113 | 124 |
Known Issues |
| 114 | 125 |
============ |
| ... | ... |
@@ -137,13 +148,6 @@ system units. |
| 137 | 137 |
Future Work |
| 138 | 138 |
=========== |
| 139 | 139 |
|
| 140 |
-log colorizing |
|
| 141 |
- |
|
| 142 |
-We lose log colorization through this process. We might want to build |
|
| 143 |
-a custom colorizer that we could run journalctl output through |
|
| 144 |
-optionally for people. |
|
| 145 |
- |
|
| 146 | 140 |
user units |
| 147 | 141 |
---------- |
| 148 | 142 |
|
| ... | ... |
@@ -616,21 +616,18 @@ function setup_systemd_logging {
|
| 616 | 616 |
# request-id. However, there may be an eventlet interaction here, |
| 617 | 617 |
# so going off for now. |
| 618 | 618 |
USE_JOURNAL=$(trueorfalse USE_JOURNAL False) |
| 619 |
+ local pidstr="" |
|
| 619 | 620 |
if [[ "$USE_JOURNAL" == "True" ]]; then |
| 620 | 621 |
iniset $conf_file $conf_section use_journal "True" |
| 621 | 622 |
# if we are using the journal directly, our process id is already correct |
| 622 |
- iniset $conf_file $conf_section logging_debug_format_suffix \ |
|
| 623 |
- "{{%(funcName)s %(pathname)s:%(lineno)d}}"
|
|
| 624 | 623 |
else |
| 625 |
- iniset $conf_file $conf_section logging_debug_format_suffix \ |
|
| 626 |
- "{{(pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d}}"
|
|
| 624 |
+ pidstr="(pid=%(process)d) " |
|
| 627 | 625 |
fi |
| 626 |
+ iniset $conf_file $conf_section logging_debug_format_suffix "[00;33m{{${pidstr}%(funcName)s %(pathname)s:%(lineno)d}}[00m"
|
|
| 628 | 627 |
|
| 629 |
- iniset $conf_file $conf_section logging_context_format_string \ |
|
| 630 |
- "%(levelname)s %(name)s [%(request_id)s %(project_name)s %(user_name)s] %(instance)s%(message)s" |
|
| 631 |
- iniset $conf_file $conf_section logging_default_format_string \ |
|
| 632 |
- "%(levelname)s %(name)s [-] %(instance)s%(color)s%(message)s" |
|
| 633 |
- iniset $conf_file $conf_section logging_exception_prefix "ERROR %(name)s %(instance)s" |
|
| 628 |
+ iniset $conf_file $conf_section logging_context_format_string "%(color)s%(levelname)s %(name)s [[01;36m%(request_id)s [00;36m%(project_name)s %(user_name)s%(color)s] [01;35m%(instance)s%(color)s%(message)s[00m" |
|
| 629 |
+ iniset $conf_file $conf_section logging_default_format_string "%(color)s%(levelname)s %(name)s [[00;36m-%(color)s] [01;35m%(instance)s%(color)s%(message)s[00m" |
|
| 630 |
+ iniset $conf_file $conf_section logging_exception_prefix "ERROR %(name)s [01;35m%(instance)s[00m" |
|
| 634 | 631 |
} |
| 635 | 632 |
|
| 636 | 633 |
function setup_standard_logging_identity {
|
| ... | ... |
@@ -100,11 +100,9 @@ USER_UNITS=$(trueorfalse False USER_UNITS) |
| 100 | 100 |
if [[ "$USER_UNITS" == "True" ]]; then |
| 101 | 101 |
SYSTEMD_DIR="$HOME/.local/share/systemd/user" |
| 102 | 102 |
SYSTEMCTL="systemctl --user" |
| 103 |
- JOURNALCTL_F="journalctl -f -o short-precise --user-unit" |
|
| 104 | 103 |
else |
| 105 | 104 |
SYSTEMD_DIR="/etc/systemd/system" |
| 106 | 105 |
SYSTEMCTL="sudo systemctl" |
| 107 |
- JOURNALCTL_F="journalctl -f -o short-precise --unit" |
|
| 108 | 106 |
fi |
| 109 | 107 |
|
| 110 | 108 |
|