1
+ package com .navercorp .pinpoint .banner ;
2
+
3
+ import java .util .Collection ;
4
+ import java .util .Objects ;
5
+ import java .util .function .Consumer ;
6
+ import java .util .function .Function ;
7
+
8
+ public class PinpointBanner {
9
+ private final Mode bannerMode ;
10
+ private final Collection <String > dumpKeys ;
11
+ private final Function <String , String > properties ;
12
+ private final Consumer <String > consoleWriter = System .out ::println ;
13
+ private final Consumer <String > loggerWriter ;
14
+
15
+ public PinpointBanner (Mode bannerMode ,
16
+ Collection <String > dumpKeys ,
17
+ Function <String , String > properties ,
18
+ Consumer <String > loggerWriter ) {
19
+ this .bannerMode = Objects .requireNonNull (bannerMode , "bannerMode" );
20
+ this .dumpKeys = Objects .requireNonNull (dumpKeys , "dumpKeys" );
21
+ this .properties = Objects .requireNonNull (properties , "properties" );
22
+ this .loggerWriter = Objects .requireNonNull (loggerWriter , "loggerWriter" );
23
+ }
24
+
25
+
26
+ public void printBanner () {
27
+ switch (bannerMode ) {
28
+ case OFF :
29
+ return ;
30
+ case LOG :
31
+ loggerWriter .accept (buildBannerString ());
32
+ return ;
33
+ default :
34
+ consoleWriter .accept (buildBannerString ());
35
+ }
36
+ }
37
+
38
+ private String buildBannerString () {
39
+ StringBuilder banner = new StringBuilder (128 );
40
+ banner .append (BannerUtils .banner ());
41
+ banner .append (format ("Pinpoint Version" , BannerVersionTemplate .VERSION ));
42
+ banner .append (System .lineSeparator ());
43
+
44
+ for (String key : dumpKeys ) {
45
+ String value = properties .apply (key );
46
+ if (value != null ) {
47
+ banner .append (format (key , value ));
48
+ banner .append (System .lineSeparator ());
49
+ }
50
+ }
51
+ return banner .toString ();
52
+ }
53
+
54
+ protected String format (String key , String value ) {
55
+ return String .format (" :: %55s :: %35s" , key , value );
56
+ }
57
+
58
+ public enum Mode {
59
+ OFF ,
60
+ CONSOLE ,
61
+ LOG ;
62
+ }
63
+ }
0 commit comments