NFVBENCH-4 Add support for log file
[nfvbench.git] / nfvbench / log.py
1 # Copyright 2016 Cisco Systems, Inc.  All rights reserved.
2 #
3 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
4 #    not use this file except in compliance with the License. You may obtain
5 #    a copy of the License at
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #    Unless required by applicable law or agreed to in writing, software
10 #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 #    License for the specific language governing permissions and limitations
13 #    under the License.
14
15 import logging
16
17 _product_name = 'nfvbench'
18
19 def setup():
20     # logging.basicConfig()
21     formatter_str = '%(asctime)s %(levelname)s %(message)s'
22     handler = logging.StreamHandler()
23     handler.setFormatter(logging.Formatter(formatter_str))
24
25     # Add handler to logger
26     logger = logging.getLogger(_product_name)
27     logger.addHandler(handler)
28
29 def add_file_logger(logfile):
30     if logfile:
31         file_formatter_str = '%(asctime)s %(levelname)s %(message)s'
32         file_handler = logging.FileHandler(logfile, mode='w')
33         file_handler.setFormatter(logging.Formatter(file_formatter_str))
34         logger = logging.getLogger(_product_name)
35         logger.addHandler(file_handler)
36
37 def set_level(debug=False):
38     log_level = logging.DEBUG if debug else logging.INFO
39     logger = logging.getLogger(_product_name)
40     logger.setLevel(log_level)
41
42 def getLogger():
43     logger = logging.getLogger(_product_name)
44     return logger
45
46 LOG = getLogger()