@@ -56,10 +56,22 @@ pub struct Node {
56
56
#[ arg( long, env, default_value = "8302" ) ]
57
57
pub libp2p_port : u16 ,
58
58
59
- /// Verbosity level
59
+ /// Verbosity level (options: trace, debug, info, warn, error)
60
60
#[ arg( long, short, env, default_value = "info" ) ]
61
61
pub verbosity : Level ,
62
62
63
+ /// Disable filesystem logging
64
+ #[ arg(
65
+ long,
66
+ env = "OPENMINA_DISABLE_FILESYSTEM_LOGGING" ,
67
+ default_value_t = false
68
+ ) ]
69
+ pub disable_filesystem_logging : bool ,
70
+
71
+ /// Specify custom path for log files
72
+ #[ arg( long, env = "OPENMINA_LOG_PATH" , default_value = "$OPENMINA_HOME" ) ]
73
+ pub log_path : String ,
74
+
63
75
#[ arg( long, short = 'P' , alias = "peer" ) ]
64
76
pub peers : Vec < P2pConnectionOutgoingInitOpts > ,
65
77
@@ -131,8 +143,20 @@ impl Node {
131
143
pub fn run ( self ) -> anyhow:: Result < ( ) > {
132
144
let work_dir = shellexpand:: full ( & self . work_dir ) . unwrap ( ) . into_owned ( ) ;
133
145
134
- let _guard =
135
- tracing:: initialize_with_filesystem_output ( self . verbosity , work_dir. clone ( ) . into ( ) ) ;
146
+ let _guard = if !self . disable_filesystem_logging {
147
+ let log_output_dir = if self . log_path == "$OPENMINA_HOME" {
148
+ work_dir. clone ( )
149
+ } else {
150
+ self . log_path . clone ( )
151
+ } ;
152
+ Some ( tracing:: initialize_with_filesystem_output (
153
+ self . verbosity ,
154
+ log_output_dir. into ( ) ,
155
+ ) )
156
+ } else {
157
+ tracing:: initialize ( self . verbosity ) ;
158
+ None
159
+ } ;
136
160
137
161
rayon:: ThreadPoolBuilder :: new ( )
138
162
. num_threads ( num_cpus:: get ( ) . max ( 2 ) - 1 )
0 commit comments