@@ -8,12 +8,14 @@ use clap::Parser;
8
8
use ctrlc:: set_handler;
9
9
use eth2:: types:: Hash256 ;
10
10
use eth2:: { BeaconNodeHttpClient , SensitiveUrl , Timeouts } ;
11
+ use eyre:: eyre;
11
12
use serde:: { Deserialize , Serialize } ;
12
13
use tokio:: sync:: Mutex ;
14
+ use tracing:: Level ;
13
15
use tracing_appender:: rolling:: { RollingFileAppender , Rotation } ;
16
+ use tracing_subscriber:: fmt;
17
+ use tracing_subscriber:: fmt:: writer:: MakeWriterExt ;
14
18
use tracing_subscriber:: layer:: SubscriberExt ;
15
- use tracing_subscriber:: util:: SubscriberInitExt ;
16
- use tracing_subscriber:: { fmt, EnvFilter } ;
17
19
18
20
use blob_archiver_beacon:: beacon_client;
19
21
use blob_archiver_beacon:: beacon_client:: BeaconClientEth2 ;
@@ -72,12 +74,10 @@ async fn main() {
72
74
let api = api:: Api :: new ( Arc :: new ( Mutex :: new ( beacon_client_eth2) ) , storage. clone ( ) ) ;
73
75
let addr: std:: net:: SocketAddr = config. listen_addr . parse ( ) . expect ( "Invalid listen address" ) ;
74
76
75
- let ( _, server) = warp:: serve ( api. routes ( ) )
76
- . bind_with_graceful_shutdown ( addr, async move {
77
+ let ( _, server) = warp:: serve ( api. routes ( ) ) . bind_with_graceful_shutdown ( addr, async move {
77
78
shutdown_rx. clone ( ) . changed ( ) . await . ok ( ) ;
78
79
} ) ;
79
80
server. await ;
80
-
81
81
}
82
82
83
83
fn init_logging ( verbose : u8 , log_dir : Option < PathBuf > , rotation : Option < Rotation > ) {
@@ -92,18 +92,6 @@ pub fn setup_tracing(
92
92
log_dir : Option < PathBuf > ,
93
93
rotation : Option < Rotation > ,
94
94
) -> eyre:: Result < ( ) > {
95
- let filter = match verbose {
96
- 0 => EnvFilter :: new ( "error" ) ,
97
- 1 => EnvFilter :: new ( "warn" ) ,
98
- 2 => EnvFilter :: new ( "info" ) ,
99
- 3 => EnvFilter :: new ( "debug" ) ,
100
- _ => EnvFilter :: new ( "trace" ) ,
101
- } ;
102
-
103
- let subscriber = tracing_subscriber:: registry ( )
104
- . with ( EnvFilter :: from_default_env ( ) )
105
- . with ( filter) ;
106
-
107
95
if let Some ( log_dir) = log_dir {
108
96
fs:: create_dir_all ( & log_dir)
109
97
. map_err ( |e| eyre:: eyre!( "Failed to create log directory: {}" , e) ) ?;
@@ -114,63 +102,86 @@ pub fn setup_tracing(
114
102
"blob-archiver.log" ,
115
103
) ;
116
104
let ( non_blocking, _guard) = tracing_appender:: non_blocking ( file_appender) ;
117
- let file_layer = fmt:: layer ( ) . with_writer ( non_blocking) . with_ansi ( false ) ;
118
-
119
- subscriber
120
- . with ( file_layer)
121
- . with ( fmt:: layer ( ) . with_writer ( std:: io:: stdout) )
122
- . try_init ( ) ?;
105
+ let file_layer = fmt:: layer ( )
106
+ . with_writer ( non_blocking. with_max_level ( match verbose {
107
+ 0 => Level :: ERROR ,
108
+ 1 => Level :: WARN ,
109
+ 2 => Level :: INFO ,
110
+ 3 => Level :: DEBUG ,
111
+ _ => Level :: TRACE ,
112
+ } ) )
113
+ . with_ansi ( false ) ;
114
+
115
+ let subscriber =
116
+ tracing_subscriber:: registry ( )
117
+ . with ( file_layer)
118
+ . with (
119
+ fmt:: layer ( ) . with_writer ( std:: io:: stdout. with_max_level ( match verbose {
120
+ 0 => Level :: ERROR ,
121
+ 1 => Level :: WARN ,
122
+ 2 => Level :: INFO ,
123
+ 3 => Level :: DEBUG ,
124
+ _ => Level :: TRACE ,
125
+ } ) ) ,
126
+ ) ;
127
+ tracing:: subscriber:: set_global_default ( subscriber) . map_err ( |e| eyre ! ( e) ) ?;
123
128
} else {
124
- subscriber
125
- . with ( fmt:: layer ( ) . with_writer ( std:: io:: stdout) )
126
- . try_init ( ) ?;
129
+ let subscriber = tracing_subscriber:: registry ( ) . with ( fmt:: layer ( ) . with_writer (
130
+ std:: io:: stdout. with_max_level ( match verbose {
131
+ 0 => Level :: ERROR ,
132
+ 1 => Level :: WARN ,
133
+ 2 => Level :: INFO ,
134
+ 3 => Level :: DEBUG ,
135
+ _ => Level :: TRACE ,
136
+ } ) ,
137
+ ) ) ;
138
+ tracing:: subscriber:: set_global_default ( subscriber) . map_err ( |e| eyre ! ( e) ) ?;
127
139
}
128
-
129
140
Ok ( ( ) )
130
141
}
131
142
132
143
#[ derive( Parser , Debug ) ]
133
144
#[ clap( author, version, about, long_about = None ) ]
134
145
struct CliArgs {
135
- #[ clap( short = 'v' , long, action = clap :: ArgAction :: Count , default_value = "4 " ) ]
146
+ #[ clap( long, env = "VERBOSE" , default_value = "2 " ) ]
136
147
verbose : u8 ,
137
148
138
- #[ clap( long) ]
149
+ #[ clap( long, env = "LOG_DIR" ) ]
139
150
log_dir : Option < String > ,
140
151
141
- #[ clap( long, help = "Log rotation values: DAILY, HOURLY, MINUTELY, NEVER" ) ]
152
+ #[ clap( long, env = "LOG_ROTATION" , help = "Log rotation values: DAILY, HOURLY, MINUTELY, NEVER" ) ]
142
153
log_rotation : Option < String > ,
143
154
144
- #[ clap( long, required = true ) ]
155
+ #[ clap( long, env = "BEACON_ENDPOINT" , required = true ) ]
145
156
beacon_endpoint : String ,
146
157
147
- #[ clap( long, default_value = "10" ) ]
158
+ #[ clap( long, env = "BEACON_CLIENT_TIMEOUT" , default_value = "10" ) ]
148
159
beacon_client_timeout : u64 ,
149
160
150
- #[ clap( long, default_value = "6" ) ]
161
+ #[ clap( long, env = "POLL_INTERVAL" , default_value = "6" ) ]
151
162
poll_interval : u64 ,
152
163
153
- #[ clap( long, default_value = "0.0.0.0:8000" ) ]
164
+ #[ clap( long, env = "LISTEN_ADDR" , default_value = "0.0.0.0:8000" ) ]
154
165
listen_addr : String ,
155
166
156
- #[ clap( long, required = true ) ]
167
+ #[ clap( long, env = "ORIGIN_BLOCK" , required = true ) ]
157
168
origin_block : String ,
158
169
159
- #[ clap( long, default_value = "s3" ) ]
170
+ #[ clap( long, env = "STORAGE_TYPE" , default_value = "s3" ) ]
160
171
storage_type : String ,
161
172
162
- #[ clap( long) ]
173
+ #[ clap( long, env = "S3_ENDPOINT" ) ]
163
174
s3_endpoint : Option < String > ,
164
175
165
- #[ clap( long) ]
176
+ #[ clap( long, env = "S3_BUCKET" ) ]
166
177
s3_bucket : Option < String > ,
167
178
168
- #[ clap( long) ]
179
+ #[ clap( long, env = "S3_PATH" ) ]
169
180
s3_path : Option < String > ,
170
181
171
- #[ clap( long, default_value = "false" ) ]
182
+ #[ clap( long, env = "S3_COMPRESS" , default_value = "false" ) ]
172
183
s3_compress : Option < bool > ,
173
- #[ clap( long) ]
184
+ #[ clap( long, env = "FS_DIR" ) ]
174
185
fs_dir : Option < String > ,
175
186
}
176
187
0 commit comments