From: Zbigniew Jędrzejewski-Szmek Date: Sat, 17 Nov 2012 14:27:59 +0000 (+0100) Subject: journalctl: add option to forgo ellipsization X-Git-Tag: v196~32 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=e3657ecd7f9f9bd6a1719fc808639cd4b780674a;ds=sidebyside journalctl: add option to forgo ellipsization Sometimes it is better to see messages in full, and the existing set of options didn't allow this easily. E.g. now journalctl -f --full will behave like tail -f /var/log/messages of yore. Long option only for now, since small letters are becoming scarce, and this doesn't feel like a capital-letter-option. '-u' would be nice, and the above command would be spelled journalctl -fu --- diff --git a/man/journalctl.xml b/man/journalctl.xml index 8b26cd926..471c9452c 100644 --- a/man/journalctl.xml +++ b/man/journalctl.xml @@ -135,6 +135,13 @@ pager. + + + + Show all (printable) fields in + full. + + diff --git a/shell-completion/systemd-bash-completion.sh b/shell-completion/systemd-bash-completion.sh index 2d425c0aa..c1b851c24 100644 --- a/shell-completion/systemd-bash-completion.sh +++ b/shell-completion/systemd-bash-completion.sh @@ -294,7 +294,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} _journalctl() { local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} local -A OPTS=( - [STANDALONE]='-a --all -b --this-boot --disk-usage -f --follow --header + [STANDALONE]='-a --all --full + -b --this-boot --disk-usage -f --follow --header -h --help -l --local --new-id128 -m --merge --no-pager --no-tail -q --quiet --setup-keys --this-boot --verify --version --list-catalog --update-catalog' diff --git a/shell-completion/systemd-zsh-completion.zsh b/shell-completion/systemd-zsh-completion.zsh index 5f75bc31b..7799bf68d 100644 --- a/shell-completion/systemd-zsh-completion.zsh +++ b/shell-completion/systemd-zsh-completion.zsh @@ -77,6 +77,7 @@ _ctls() {-n,--lines=}'[Number of journal entries to show]:integer' \ '--no-tail[Show all lines, even in follow mode]' \ {-o,--output=}'[Change journal output mode]:output modes:_outputmodes' \ + {--full}'[Show long fields in full]' \ {-a,--all}'[Show all fields, including long and unprintable]' \ {-q,--quiet}"[Don't show privilege warning]" \ '--no-pager[Do not pipe output into a pager]' \ diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 8f452dd92..4d46beb3f 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -57,6 +57,7 @@ static OutputMode arg_output = OUTPUT_SHORT; static bool arg_follow = false; +static bool arg_full = false; static bool arg_all = false; static bool arg_no_pager = false; static unsigned arg_lines = 0; @@ -105,6 +106,7 @@ static int help(void) { " -o --output=STRING Change journal output mode (short, short-monotonic,\n" " verbose, export, json, json-pretty, json-sse, cat)\n" " -x --catalog Add message explanations where available\n" + " --full Do not ellipsize fields\n" " -a --all Show all fields, including long and unprintable\n" " -q --quiet Don't show privilege warning\n" " --no-pager Do not pipe output into a pager\n" @@ -140,6 +142,7 @@ static int parse_argv(int argc, char *argv[]) { ARG_NO_TAIL, ARG_NEW_ID128, ARG_HEADER, + ARG_FULL, ARG_SETUP_KEYS, ARG_INTERVAL, ARG_VERIFY, @@ -158,6 +161,7 @@ static int parse_argv(int argc, char *argv[]) { { "follow", no_argument, NULL, 'f' }, { "output", required_argument, NULL, 'o' }, { "all", no_argument, NULL, 'a' }, + { "full", no_argument, NULL, ARG_FULL }, { "lines", optional_argument, NULL, 'n' }, { "no-tail", no_argument, NULL, ARG_NO_TAIL }, { "new-id128", no_argument, NULL, ARG_NEW_ID128 }, @@ -226,6 +230,10 @@ static int parse_argv(int argc, char *argv[]) { break; + case ARG_FULL: + arg_full = true; + break; + case 'a': arg_all = true; break; @@ -1065,7 +1073,7 @@ int main(int argc, char *argv[]) { flags = arg_all * OUTPUT_SHOW_ALL | - (!on_tty() || pager_have()) * OUTPUT_FULL_WIDTH | + (arg_full || !on_tty() || pager_have()) * OUTPUT_FULL_WIDTH | on_tty() * OUTPUT_COLOR | arg_catalog * OUTPUT_CATALOG;