By default, a dash ('-') in log files signifies absence of a value
(e.g. for &optional record fields), so to avoid ambiguity with '-' in
other contexts (e.g. a string with a value of "-"), those others get
escaped as \x2d.
You could change the default character used for absent values via a
'redef' of `LogAscii::unset_field` to something else:
There is also a `LogAscii::empty_field` option to control what an
empty value looks like in the log:
An empty-string would render as "(empty)" in logs by default, so maybe
you want to stick with that in your scripts instead of trying to use a
dash ('-') since that already conflicts with the default value of
unset fields. Or you could pick a different sentinel value than '-'
to use in place of empty-strings in your particular script.
Also, if you were to change either setting, note that escaping will
still happen for any logged-value found to conflict with the new
settings.
- Jon