###
# ============LICENSE_START=======================================================
# ONAP CLAMP
# ================================================================================
# Copyright (C) 2017-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============================================
# ===================================================================
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
###

# If the environment property system_properties_path contains a path to a file  , System properties created using the file. If the environment variable not present, system.properties in the class path is used for system property creation 

com.att.eelf.logging.file=classpath:/logback.xml

# change as per logback.xml path
com.att.eelf.logging.path=./
logging.config=classpath:/logback.xml

#
# JVM SSL/TLS properties
jdk.tls.client.protocols=TLSv1.1,TLSv1.2 
https.protocols=TLSv1.1,TLSv1.2
