###
# ============LICENSE_START=======================================================
# ONAP-XACML
# ================================================================================
# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Licensed 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.
# ============LICENSE_END=========================================================
###

################################### Set concurrentHashMap and timer info  #######################
#Timer initial delay and the delay between in milliseconds before task is to be execute.
timer.delay.time=1000
#Timer scheduleAtFixedRate period - time in milliseconds between successive task executions.
check.interval= 30000
#Longest time an event info can be stored in the concurrentHashMap for logging - in seconds. 
event.expired.time=86400
#Size of the concurrentHashMap which stores the event starting time, etc - when its size reaches this limit, the Timer gets executed 
#to remove all expired records from this concurrentHashMap.
concurrentHashMap.limit=5000
#Size of the concurrentHashMap - when its size drops to this point, stop the Timer
stop.check.point=2500
################################### Set logging format #############################################
# set EELF for EELF logging format, set LOG4J for using log4j, set SYSTEMOUT for using system.out.println
logger.type=EELF
#################################### Set level for EELF or SYSTEMOUT logging ##################################
# Set level for debug file. Set DEBUG to enable .info, .warn and .debug; set INFO for enable .info and .warn; set OFF to disable all 
debugLogger.level=INFO
# Set level for metrics file. Set OFF to disable; set ON to enable
metricsLogger.level=ON
# Set level for error file. Set OFF to disable; set ON to enable
error.level=ON
# Set level for audit file. Set OFF to disable; set ON to enable
audit.level=ON
