The log2json command takes the LogFormat string to use and a list of filenames as command-line arguments. If nothing is supplied, it goes into "demo" mode, prompting you for a LogFormat and a single log record to parse.
log2json '%b' a.log b.log
LogFormat is a Haskell module that makes it trivial to parse access log records.
LogFormat will take the LogFormat configuration from your httpd.conf file and a log file and give you your log records as Maps where the key is the field name.
The Apache httpd configuration files allow you to customize the format of your log file records using the LogFormat directive. For example, if you want every line of your access log to read "Hello Web" you can do that like so:
LogFormat "Hello Web" custom
More often you'll use a value such as
LogFormat "%h %l %u %t \"%r\" %>s %b" common
and receive log records like
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326