@@ -72,21 +72,21 @@ struct Args {
72
72
long = "timeout" ,
73
73
value_parser= humantime:: parse_duration,
74
74
default_value = "2h" ,
75
- help = "Set the timeout for downloading a file"
75
+ help = "Specify the timeout for downloading a file"
76
76
) ]
77
77
timeout : Duration ,
78
78
79
79
#[ arg(
80
80
long = "piece-length" ,
81
81
default_value_t = 4194304 ,
82
- help = "Set the byte length of the piece"
82
+ help = "Specify the byte length of the piece"
83
83
) ]
84
84
piece_length : u64 ,
85
85
86
86
#[ arg(
87
87
long = "download-rate-limit" ,
88
88
default_value_t = 2147483648 ,
89
- help = "Set the rate limit of the downloading in bytes per second"
89
+ help = "Specify the rate limit of the downloading in bytes per second"
90
90
) ]
91
91
download_rate_limit : u64 ,
92
92
@@ -102,7 +102,7 @@ struct Args {
102
102
short = 'p' ,
103
103
long = "priority" ,
104
104
default_value_t = 6 ,
105
- help = "Set the priority for scheduling task"
105
+ help = "Specify the priority for scheduling task"
106
106
) ]
107
107
priority : i32 ,
108
108
@@ -124,7 +124,7 @@ struct Args {
124
124
short = 'H' ,
125
125
long = "header" ,
126
126
required = false ,
127
- help = "Set the header for downloading file, e.g. --header='Content-Type: application/json' --header='Accept: application/json'"
127
+ help = "Specify the header for downloading file, e.g. --header='Content-Type: application/json' --header='Accept: application/json'"
128
128
) ]
129
129
header : Option < Vec < String > > ,
130
130
@@ -146,7 +146,7 @@ struct Args {
146
146
short = 'l' ,
147
147
long,
148
148
default_value = "info" ,
149
- help = "Set the logging level [trace, debug, info, warn, error]"
149
+ help = "Specify the logging level [trace, debug, info, warn, error]"
150
150
) ]
151
151
log_level : Level ,
152
152
@@ -157,6 +157,13 @@ struct Args {
157
157
) ]
158
158
log_dir : PathBuf ,
159
159
160
+ #[ arg(
161
+ long,
162
+ default_value_t = 24 ,
163
+ help = "Specify the max number of log files"
164
+ ) ]
165
+ log_max_files : usize ,
166
+
160
167
#[ arg(
161
168
short = 'c' ,
162
169
long = "dfdaemon-config" ,
@@ -175,7 +182,7 @@ struct Args {
175
182
#[ arg(
176
183
long = "dfdaemon-log-level" ,
177
184
default_value = "info" ,
178
- help = "Set the dfdaemon's logging level [trace, debug, info, warn, error]"
185
+ help = "Specify the dfdaemon's logging level [trace, debug, info, warn, error]"
179
186
) ]
180
187
dfdaemon_log_level : Level ,
181
188
@@ -185,6 +192,13 @@ struct Args {
185
192
help = "Specify the dfdaemon's log directory"
186
193
) ]
187
194
dfdaemon_log_dir : PathBuf ,
195
+
196
+ #[ arg(
197
+ long,
198
+ default_value_t = 24 ,
199
+ help = "Specify the dfdaemon's max number of log files"
200
+ ) ]
201
+ dfdaemon_log_max_files : usize ,
188
202
}
189
203
190
204
#[ tokio:: main]
@@ -193,14 +207,21 @@ async fn main() -> Result<(), anyhow::Error> {
193
207
let args = Args :: parse ( ) ;
194
208
195
209
// Initialize tracting.
196
- let _guards = init_tracing ( dfget:: NAME , & args. log_dir , args. log_level , None ) ;
210
+ let _guards = init_tracing (
211
+ dfget:: NAME ,
212
+ & args. log_dir ,
213
+ args. log_level ,
214
+ args. log_max_files ,
215
+ None ,
216
+ ) ;
197
217
198
218
// Get or create dfdaemon download client.
199
219
let dfdaemon_download_client = get_or_create_dfdaemon_download_client (
200
220
args. dfdaemon_config ,
201
221
args. endpoint . clone ( ) ,
202
222
args. dfdaemon_log_dir ,
203
223
args. dfdaemon_log_level ,
224
+ args. dfdaemon_log_max_files ,
204
225
args. dfdaemon_lock_path ,
205
226
)
206
227
. await
@@ -269,6 +290,7 @@ async fn get_or_create_dfdaemon_download_client(
269
290
endpoint : PathBuf ,
270
291
log_dir : PathBuf ,
271
292
log_level : Level ,
293
+ log_max_files : usize ,
272
294
lock_path : PathBuf ,
273
295
) -> Result < DfdaemonDownloadClient , anyhow:: Error > {
274
296
// Get dfdaemon download client and check its health.
@@ -288,7 +310,7 @@ async fn get_or_create_dfdaemon_download_client(
288
310
}
289
311
290
312
// Spawn a dfdaemon process.
291
- let child = spawn_dfdaemon ( config_path, log_dir, log_level) ?;
313
+ let child = spawn_dfdaemon ( config_path, log_dir, log_level, log_max_files ) ?;
292
314
info ! ( "spawn dfdaemon process: {:?}" , child) ;
293
315
294
316
// Initialize the timeout of checking dfdaemon's health.
@@ -333,6 +355,7 @@ fn spawn_dfdaemon(
333
355
config_path : PathBuf ,
334
356
log_dir : PathBuf ,
335
357
log_level : Level ,
358
+ log_max_files : usize ,
336
359
) -> Result < Child , anyhow:: Error > {
337
360
// Create dfdaemon command.
338
361
let mut cmd = Command :: new ( "dfdaemon" ) ;
@@ -343,7 +366,9 @@ fn spawn_dfdaemon(
343
366
. arg ( "--log-dir" )
344
367
. arg ( log_dir)
345
368
. arg ( "--log-level" )
346
- . arg ( log_level. to_string ( ) ) ;
369
+ . arg ( log_level. to_string ( ) )
370
+ . arg ( "--log-max-files" )
371
+ . arg ( log_max_files. to_string ( ) ) ;
347
372
348
373
// Redirect stdin, stdout, stderr to /dev/null.
349
374
cmd. stdin ( Stdio :: null ( ) )
0 commit comments