logger [OPTIONS] [URI]
The logger participates in the channel designated by URI (see URIs) using one or more transports and displays all events published on the channel using a configurable style.
The usual commandline options, IDL-related options and environment variables are accepted. Specialized commandline options:
Specify a filter that received events have to match in order to be processed rather than discarded. This option can be supplied multiple times in which case events have to match all specified filters. Each SPEC has to be of one of the forms:
KIND
KIND SINGLE-VALUE
KIND KEY1 VALUE1 KEY2 VALUE2 ...
where keys and values depend on KIND and may be mandatory in some cases. Examples (note that the single quotes have to be included only when used within a shell)
--filter 'origin "EAEE2B00-AF4B-11E0-8930-001AA0342D7D"'
--filter 'regex ".*foo[0-9]+"'
--filter 'regex :regex ".*foo[0-9]+"' (equivalent)
-f 'xpath :xpath "node()/@foo" :fallback-policy :do-not-match'
Tip
Use the common --help-for filter or common --help-for all options to display the full help text for this item.
Specify a formatting style that should be used to print events. SPEC has to be of the form:
KIND KEY1 VALUE1 KEY2 VALUE2 ...
where keys and values are optional and depend on KIND. Examples (note that the single quotes have to be included only when used within a shell)
--style detailed
-s compact
--style 'compact :separator "|"'
--style 'columns :columns (:now (:scope :width 12) :id :newline)'
Tip
Use the common --help-for styles or common --help-for all options to display the full help text for this item.
Use common --help-for columns and common --help-for quantities for explanations of the :columns argument and quantity columns used in the columns and statistics styles.
See formatting for a detailed discussion of event formatting options.
$ logger --style detailed /
Event
Scope /
Id ac5f449c-4aa1-4b03-a9e2-3fac7d38e651
Type bytearray
Origin ab6e3a17-e11f-4c89-8c07-606a009e8439
Timestamps
Create 2011-Jul-03 12:51:11.802849+??:??
Send 2011-Jul-03 12:51:11.802950+??:??
Receive 2011-Jul-03 12:51:11.810332+??:??
Deliver 2011-Jul-03 12:51:11.810572+??:??
Payload (bytearray, length 100000)
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0017 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x002e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0045 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...
-------------------------------------------------------------------------------
Event
Scope /
Id 3fd721ef-6e7c-4e81-bd5f-ff215b2b965f
Type std::string
Origin 8e07e02a-0dee-44a2-8926-cc65c0285410
Timestamps
Create 2011-Jul-03 12:51:20.102403+??:??
Send 2011-Jul-03 12:51:20.102482+??:??
Receive 2011-Jul-03 12:51:20.105319+??:??
Deliver 2011-Jul-03 12:51:20.105404+??:??
Payload (std::string, length 3)
foo
-------------------------------------------------------------------------------
In the above example, the C++ version of the logger is instructed to participate in the channel designated by the root scope /. This means that the logger will display all events which are receivable using its configured transports. In this example, the configured transports depend on the RSB configuration file and environment variables.
$ ls ~/projects/talk-rsb-data/code/*.proto
/homes/jmoringe/projects/talk-rsb-data/code/Image.proto
$ logger --style detailed \
--load-idl ~/projects/talk-rsb/data/code/Image.proto \
spread:
Event
Scope : /
Id : 89064E22-C503-44DA-9C65-9385C29D09A1
Type : T
Origin: ABB03F86-655A-42EE-9D5B-26D34C922A3A
Timestamps
Create : 2011-07-16T00:28:52.123994+02:00
Send : 2011-07-16T00:28:52.124095+02:00
Receive: 2011-07-16T00:28:52.235294+02:00
Deliver: 2011-07-16T00:28:52.243197+02:00
Payload (RUNNING.EXAMPLE:IMAGE)
#<IMAGE {1005B10C81}>
Meta-Data: #<META-DATA {10063AF2B1}>
Key : "foo"
Value: "bar"
Width : 20
Height : 30
Depths : 20
10
Data : 01 02 03 04
-------------------------------------------------------------------------------
In the above example, the Common Lisp version of the logger is used to display protocol buffer event payloads. This only works, if the logger is provided with the protocol buffer IDL definitions of the event payloads it should display (in this example: the running.example.Image message from the slides used in this meeting). These definitions can either be textual definitions, typically found in .proto files (as in this example), or compiled, binary descriptions (not shown).
$ logger --idl-path "rst/trunk/rst/proto/sandbox/" \
--idl-path "rst/trunk/rst/proto/stable/" \
--load-idl 'rst/trunk/rst/proto/**/*.proto' \
--style detailed \
spread:
Here is another example which loads all definitions contained in the Robotics Systems Types repository.
Note
The --idl-path option for import resolution and wildcards are used to load all definitions at once.
Loading all definitions takes a few seconds.
Implementation Language | Project | Repository Link | Compiled Binary |
---|---|---|---|
C++ | rsb-cpp-tools | “0.7” branch of https://code.cor-lab.org/git/rsb.git./cpp/tools | Artifacts of this Jenkins job |
Common Lisp | cl-rsb-tools | “0.7” branch of https://code.cor-lab.org/git/rsb.git./cl/cl-rsb-tools | Linux i686, Linux x86_64, MacOS x86_64 |