Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

#!/usr/bin/env python 

# -*- coding: utf-8 -*- 

 

############################################################################### 

#  Copyright Kitware Inc. 

# 

#  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. 

############################################################################### 

 

import logging.handlers 

import os 

 

from girder.constants import ROOT_DIR, MAX_LOG_SIZE, LOG_BACKUP_COUNT 

 

 

class LogLevelFilter(object): 

    """ 

    Filter log records based on whether they are between a min and max level. 

    """ 

    def __init__(self, min, max): 

        self.minLevel = min 

        self.maxLevel = max 

 

    def filter(self, logRecord): 

        level = logRecord.levelno 

        return level <= self.maxLevel and level >= self.minLevel 

 

 

def _setupLogger(): 

    """ 

    Sets up the girder logger. 

    """ 

    logger = logging.getLogger('girder') 

    logger.setLevel(logging.DEBUG) 

 

    eh = logging.handlers.RotatingFileHandler( 

        os.path.join(ROOT_DIR, 'logs', 'error.log'), maxBytes=MAX_LOG_SIZE, 

        backupCount=LOG_BACKUP_COUNT) 

    eh.setLevel(logging.WARNING) 

    eh.addFilter(LogLevelFilter(min=logging.WARNING, max=logging.CRITICAL)) 

    ih = logging.handlers.RotatingFileHandler( 

        os.path.join(ROOT_DIR, 'logs', 'info.log'), maxBytes=MAX_LOG_SIZE, 

        backupCount=LOG_BACKUP_COUNT) 

    ih.setLevel(logging.INFO) 

    ih.addFilter(LogLevelFilter(min=logging.DEBUG, max=logging.INFO)) 

 

    fmt = logging.Formatter('[%(asctime)s] %(levelname)s: %(message)s') 

    eh.setFormatter(fmt) 

    ih.setFormatter(fmt) 

 

    logger.addHandler(eh) 

    logger.addHandler(ih) 

    return logger 

 

logger = _setupLogger()