mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2024-10-01 01:45:40 -04:00
Enable log timestamps using explicit command line flag
Previously logs were only timestamped when the ASB was run in an interactive terminal or if the logs were output as JSON. JSON logs and ASB output in an interactive terminal are no longer timestamped by default.
This commit is contained in:
parent
19836a1051
commit
679b155db1
@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- Timestamping can now be enabled using the `timestamp` command line argument to the ASB.
|
||||||
|
JSON logs and ASB output in an interactive terminal are no longer timestamped by default.
|
||||||
- The `cancel`, `refund` and `punish` subcommands in ASB and CLI are run with the `--force` by default and the `--force` option has been removed.
|
- The `cancel`, `refund` and `punish` subcommands in ASB and CLI are run with the `--force` by default and the `--force` option has been removed.
|
||||||
The force flag was used to ignore blockheight and protocol state checks.
|
The force flag was used to ignore blockheight and protocol state checks.
|
||||||
Users can still restart a swap with these checks using the `resume` subcommand.
|
Users can still restart a swap with these checks using the `resume` subcommand.
|
||||||
|
@ -19,6 +19,7 @@ where
|
|||||||
let args = RawArguments::from_clap(&matches);
|
let args = RawArguments::from_clap(&matches);
|
||||||
|
|
||||||
let json = args.json;
|
let json = args.json;
|
||||||
|
let timestamp = args.timestamp;
|
||||||
let testnet = args.testnet;
|
let testnet = args.testnet;
|
||||||
let config = args.config;
|
let config = args.config;
|
||||||
let command: RawCommand = args.cmd;
|
let command: RawCommand = args.cmd;
|
||||||
@ -27,6 +28,7 @@ where
|
|||||||
RawCommand::Start { resume_only } => Arguments {
|
RawCommand::Start { resume_only } => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::Start { resume_only },
|
cmd: Command::Start { resume_only },
|
||||||
@ -34,6 +36,7 @@ where
|
|||||||
RawCommand::History => Arguments {
|
RawCommand::History => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::History,
|
cmd: Command::History,
|
||||||
@ -41,6 +44,7 @@ where
|
|||||||
RawCommand::WithdrawBtc { amount, address } => Arguments {
|
RawCommand::WithdrawBtc { amount, address } => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::WithdrawBtc {
|
cmd: Command::WithdrawBtc {
|
||||||
@ -51,6 +55,7 @@ where
|
|||||||
RawCommand::Balance => Arguments {
|
RawCommand::Balance => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::Balance,
|
cmd: Command::Balance,
|
||||||
@ -61,6 +66,7 @@ where
|
|||||||
}) => Arguments {
|
}) => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::Redeem {
|
cmd: Command::Redeem {
|
||||||
@ -74,6 +80,7 @@ where
|
|||||||
}) => Arguments {
|
}) => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::Cancel { swap_id },
|
cmd: Command::Cancel { swap_id },
|
||||||
@ -83,6 +90,7 @@ where
|
|||||||
}) => Arguments {
|
}) => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::Refund { swap_id },
|
cmd: Command::Refund { swap_id },
|
||||||
@ -92,6 +100,7 @@ where
|
|||||||
}) => Arguments {
|
}) => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::Punish { swap_id },
|
cmd: Command::Punish { swap_id },
|
||||||
@ -99,6 +108,7 @@ where
|
|||||||
RawCommand::ManualRecovery(ManualRecovery::SafelyAbort { swap_id }) => Arguments {
|
RawCommand::ManualRecovery(ManualRecovery::SafelyAbort { swap_id }) => Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path: config_path(config, testnet)?,
|
config_path: config_path(config, testnet)?,
|
||||||
env_config: env_config(testnet),
|
env_config: env_config(testnet),
|
||||||
cmd: Command::SafelyAbort { swap_id },
|
cmd: Command::SafelyAbort { swap_id },
|
||||||
@ -158,6 +168,7 @@ pub struct BitcoinAddressNetworkMismatch {
|
|||||||
pub struct Arguments {
|
pub struct Arguments {
|
||||||
pub testnet: bool,
|
pub testnet: bool,
|
||||||
pub json: bool,
|
pub json: bool,
|
||||||
|
pub timestamp: bool,
|
||||||
pub config_path: PathBuf,
|
pub config_path: PathBuf,
|
||||||
pub env_config: env::Config,
|
pub env_config: env::Config,
|
||||||
pub cmd: Command,
|
pub cmd: Command,
|
||||||
@ -210,6 +221,13 @@ pub struct RawArguments {
|
|||||||
)]
|
)]
|
||||||
pub json: bool,
|
pub json: bool,
|
||||||
|
|
||||||
|
#[structopt(
|
||||||
|
short,
|
||||||
|
long = "timestamp",
|
||||||
|
help = "Adds a timestamp to the log messages"
|
||||||
|
)]
|
||||||
|
pub timestamp: bool,
|
||||||
|
|
||||||
#[structopt(
|
#[structopt(
|
||||||
long = "config",
|
long = "config",
|
||||||
help = "Provide a custom path to the configuration file. The configuration file must be a toml file.",
|
help = "Provide a custom path to the configuration file. The configuration file must be a toml file.",
|
||||||
@ -326,6 +344,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::Start { resume_only: false },
|
cmd: Command::Start { resume_only: false },
|
||||||
@ -337,6 +356,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::History,
|
cmd: Command::History,
|
||||||
@ -348,6 +368,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::Balance,
|
cmd: Command::Balance,
|
||||||
@ -364,6 +385,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::WithdrawBtc {
|
cmd: Command::WithdrawBtc {
|
||||||
@ -384,6 +406,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::Cancel {
|
cmd: Command::Cancel {
|
||||||
@ -403,6 +426,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::Refund {
|
cmd: Command::Refund {
|
||||||
@ -422,6 +446,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path.clone(),
|
config_path: default_mainnet_conf_path.clone(),
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::Punish {
|
cmd: Command::Punish {
|
||||||
@ -441,6 +466,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: false,
|
testnet: false,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_mainnet_conf_path,
|
config_path: default_mainnet_conf_path,
|
||||||
env_config: mainnet_env_config,
|
env_config: mainnet_env_config,
|
||||||
cmd: Command::SafelyAbort {
|
cmd: Command::SafelyAbort {
|
||||||
@ -460,6 +486,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::Start { resume_only: false },
|
cmd: Command::Start { resume_only: false },
|
||||||
@ -471,6 +498,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::History,
|
cmd: Command::History,
|
||||||
@ -482,6 +510,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::Balance,
|
cmd: Command::Balance,
|
||||||
@ -499,6 +528,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::WithdrawBtc {
|
cmd: Command::WithdrawBtc {
|
||||||
@ -520,6 +550,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::Cancel {
|
cmd: Command::Cancel {
|
||||||
@ -540,6 +571,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::Refund {
|
cmd: Command::Refund {
|
||||||
@ -560,6 +592,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path.clone(),
|
config_path: default_testnet_conf_path.clone(),
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::Punish {
|
cmd: Command::Punish {
|
||||||
@ -580,6 +613,7 @@ mod tests {
|
|||||||
let expected_args = Arguments {
|
let expected_args = Arguments {
|
||||||
testnet: true,
|
testnet: true,
|
||||||
json: false,
|
json: false,
|
||||||
|
timestamp: false,
|
||||||
config_path: default_testnet_conf_path,
|
config_path: default_testnet_conf_path,
|
||||||
env_config: testnet_env_config,
|
env_config: testnet_env_config,
|
||||||
cmd: Command::SafelyAbort {
|
cmd: Command::SafelyAbort {
|
||||||
|
@ -3,7 +3,7 @@ use tracing_subscriber::filter::LevelFilter;
|
|||||||
use tracing_subscriber::fmt::time::ChronoLocal;
|
use tracing_subscriber::fmt::time::ChronoLocal;
|
||||||
use tracing_subscriber::FmtSubscriber;
|
use tracing_subscriber::FmtSubscriber;
|
||||||
|
|
||||||
pub fn init(level: LevelFilter, json_format: bool) -> Result<()> {
|
pub fn init(level: LevelFilter, json_format: bool, timestamp: bool) -> Result<()> {
|
||||||
if level == LevelFilter::OFF {
|
if level == LevelFilter::OFF {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
@ -17,12 +17,11 @@ pub fn init(level: LevelFilter, json_format: bool) -> Result<()> {
|
|||||||
.with_timer(ChronoLocal::with_format("%F %T".to_owned()))
|
.with_timer(ChronoLocal::with_format("%F %T".to_owned()))
|
||||||
.with_target(false);
|
.with_target(false);
|
||||||
|
|
||||||
if json_format {
|
match (json_format, timestamp) {
|
||||||
builder.json().init();
|
(true, true) => builder.json().init(),
|
||||||
} else if is_terminal {
|
(true, false) => builder.json().without_time().init(),
|
||||||
builder.init();
|
(false, true) => builder.init(),
|
||||||
} else {
|
(false, false) => builder.without_time().init(),
|
||||||
builder.without_time().init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tracing::info!(%level, "Initialized tracing");
|
tracing::info!(%level, "Initialized tracing");
|
||||||
|
@ -45,6 +45,7 @@ async fn main() -> Result<()> {
|
|||||||
let Arguments {
|
let Arguments {
|
||||||
testnet,
|
testnet,
|
||||||
json,
|
json,
|
||||||
|
timestamp,
|
||||||
config_path,
|
config_path,
|
||||||
env_config,
|
env_config,
|
||||||
cmd,
|
cmd,
|
||||||
@ -66,7 +67,7 @@ async fn main() -> Result<()> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
asb::tracing::init(LevelFilter::DEBUG, json).expect("initialize tracing");
|
asb::tracing::init(LevelFilter::DEBUG, json, timestamp).expect("initialize tracing");
|
||||||
|
|
||||||
let config = match read_config(config_path.clone())? {
|
let config = match read_config(config_path.clone())? {
|
||||||
Ok(config) => config,
|
Ok(config) => config,
|
||||||
|
Loading…
Reference in New Issue
Block a user