# Licensed to the Apache Software Foundation (ASF) under the terms of ASLv2 (http://www.apache.org/licenses/LICENSE-2.0).

# name of log to synchronize
name = auditlog
# how to synchronize, can be 'pull' (only receive updates), 'push' (only push updates) or 'pushpull' (2-way update)
mode = pushpull
