# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
# The LoggerManager creates loggers for entries in this file.
# This initializes certain logs at the set debugging levels( 0 - 4 )
# A management tool will force reinitialization and a reread of this file at
# runtime.  However the primary way to alter runtime loggin levels will be to
# modify the level of the logger object through the tool.
# An entry must have a .level entry to be initialized
# .systemout is N by default, Y will turn it on
# .maxfilesize -- number of bytes before archiving log
# .numtocheck -- number of entries before checking to see if it is too big
# The logroot value is used by default.  This can be overridden with
# a specific entry

logroot=bin/test/jcs/logs

# the sleepinterval value is how often the writing thread wakes up in ms.
# Recommend set to 1000 for development servers (so it would write with 1 sec. delay
# and 10000 for production servers (so it would write every 10 seconds.)

# Min is 5 secs ie 5000
sleepInterval=1000

# The string buffer size before messages are flushed to disk.
# Minimum is zero, which flushes every log message to disk asap.
buffer_capacity=0

access_cacheaccess.level=2
access_cacheaccess.systemout=y
access_cacheaccess.maxfilesize=100000
access_cacheaccess.numtocheck=300

control_cache.level=2
control_cache.systemout=y
control_cache.maxfilesize=100000
control_cache.numtocheck=300

engine_groupcache.level=2
engine_groupcache.systemout=y
engine_groupcache.maxfilesize=100000
engine_groupcache.numtocheck=300

control_cachemanager.level=2
control_cachemanager.systemout=y
control_cachemanager.maxfilesize=100000
control_cachemanager.numtocheck=300

memory_lateralcacheunicaster.level=0
memory_lateralcacheunicaster.systemout=n
memory_lateralcacheunicaster.maxfilesize=100000
memory_lateralcacheunicaster.numtocheck=300

remote_remotecachemanager.level=2
remote_remotecachemanager.systemout=y
remote_remotecachemanager.maxfilesize=100000
remote_remotecachemanager.numtocheck=300

group_remotegroupcacheserver.level=2
group_remotegroupcacheserver.systemout=y
group_remotegroupcacheserver.maxfilesize=100000
group_remotegroupcacheserver.numtocheck=300
