aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/logger/package.scala
blob: 377989b5a6b9f35f3deeef7f9563d78acc15d653 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// SPDX-License-Identifier: Apache-2.0

import firrtl.AnnotationSeq
import firrtl.{seqToAnnoSeq, annoSeqToSeq}
import firrtl.options.OptionsView

package object logger {

  implicit object LoggerOptionsView extends OptionsView[LoggerOptions] {
    def view(options: AnnotationSeq): LoggerOptions = options
      .foldLeft(new LoggerOptions()) { (c, x) =>
        x match {
          case LogLevelAnnotation(logLevel)         => c.copy(globalLogLevel = logLevel)
          case ClassLogLevelAnnotation(name, level) => c.copy(classLogLevels = c.classLogLevels + (name -> level))
          case LogFileAnnotation(f)                 => c.copy(logFileName = f)
          case LogClassNamesAnnotation              => c.copy(logClassNames = true)
          case _                                    => c
        }
      }
  }

}