Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(logging): impl Default for Logger, add timestamp to messages #170

Merged
merged 2 commits into from
Nov 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@ tokio = {version = "1", features = ["full"]}
strsim = "0.10.0"
async-recursion = "1.0.5"
async-trait = "0.1.51"
chrono = "0.4.31"
3 changes: 1 addition & 2 deletions common/src/ether/compiler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ use crate::io::logging::Logger;
// for example: (solc, 0.8.10) or (vyper, 0.2.16)
pub fn detect_compiler(bytecode: &str) -> (&'static str, String) {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

let mut compiler = "unknown";
let mut version = "unknown".to_string();
Expand Down
6 changes: 2 additions & 4 deletions common/src/ether/evm/ext/exec/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ impl VM {
}

// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(&format!("beginning symbolic execution for selector 0x{}", selector));

Expand All @@ -57,8 +56,7 @@ impl VM {
let mut vm = self.clone();

// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max("beginning contract-wide symbolic execution");

Expand Down
18 changes: 6 additions & 12 deletions common/src/ether/evm/ext/exec/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ pub fn stack_contains_too_many_of_the_same_item(stack: &Stack) -> bool {
16
}) {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(
"jump matches loop-detection heuristic: 'stack_contains_too_many_of_the_same_item'",
Expand All @@ -49,8 +48,7 @@ pub fn stack_contains_too_many_of_the_same_item(stack: &Stack) -> bool {
pub fn stack_item_source_depth_too_deep(stack: &Stack) -> bool {
if stack.stack.iter().any(|frame| frame.operation.depth() > 16) {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger
.debug_max("jump matches loop-detection heuristic: 'stack_item_source_depth_too_deep'");
Expand All @@ -70,8 +68,7 @@ pub fn jump_condition_appears_recursive(stack_diff: &[StackFrame], jump_conditio
.any(|solidified| jump_condition.contains(&solidified))
{
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger
.debug_max("jump matches loop-detection heuristic: 'jump_condition_appears_recursive'");
Expand All @@ -98,8 +95,7 @@ pub fn jump_condition_contains_mutated_memory_access(
})
}) {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max("jump matches loop-detection heuristic: 'jump_condition_contains_mutated_memory_access'");
return true
Expand All @@ -125,8 +121,7 @@ pub fn jump_condition_contains_mutated_storage_access(
})
}) {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max("jump matches loop-detection heuristic: 'jump_condition_contains_mutated_storage_access'");
return true
Expand Down Expand Up @@ -168,8 +163,7 @@ pub fn jump_condition_historical_diffs_approximately_equal(
}

// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();
logger.debug_max("jump matches loop-detection heuristic: 'jump_condition_historical_diffs_approximately_equal'");

true
Expand Down
9 changes: 3 additions & 6 deletions common/src/ether/rpc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ use heimdall_cache::{read_cache, store_cache};
/// `Result<u64, Box<dyn std::error::Error>>`
pub async fn chain_id(rpc_url: &str) -> Result<u64, Box<dyn std::error::Error>> {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(&format!("checking chain id for rpc url: '{}'", &rpc_url));

Expand Down Expand Up @@ -74,8 +73,7 @@ pub async fn get_code(
rpc_url: &str,
) -> Result<String, Box<dyn std::error::Error>> {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

// get chain_id
let _chain_id = chain_id(rpc_url).await?;
Expand Down Expand Up @@ -145,8 +143,7 @@ pub async fn get_transaction(
rpc_url: &str,
) -> Result<Transaction, Box<dyn std::error::Error>> {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(&format!(
"fetching calldata from node for transaction: '{}' .",
Expand Down
6 changes: 2 additions & 4 deletions common/src/ether/selectors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ pub fn find_function_selectors(evm: &VM, assembly: &str) -> HashMap<String, u128
let mut handled_selectors = HashSet::new();

// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

// search through assembly for PUSHN (where N <= 4) instructions, optimistically assuming that
// they are function selectors
Expand Down Expand Up @@ -109,8 +108,7 @@ pub async fn resolve_selectors<T>(selectors: Vec<String>) -> HashMap<String, Vec
where
T: ResolveSelector + Send + Clone + 'static, {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

let resolved_functions: Arc<Mutex<HashMap<String, Vec<T>>>> =
Arc::new(Mutex::new(HashMap::new()));
Expand Down
9 changes: 3 additions & 6 deletions common/src/ether/signatures.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ pub trait ResolveSelector {
impl ResolveSelector for ResolvedError {
async fn resolve(selector: &str) -> Option<Vec<Self>> {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(&format!("resolving error selector {}", &selector));

Expand Down Expand Up @@ -125,8 +124,7 @@ impl ResolveSelector for ResolvedError {
impl ResolveSelector for ResolvedLog {
async fn resolve(selector: &str) -> Option<Vec<Self>> {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(&format!("resolving event selector {}", &selector));

Expand Down Expand Up @@ -209,8 +207,7 @@ impl ResolveSelector for ResolvedLog {
impl ResolveSelector for ResolvedFunction {
async fn resolve(selector: &str) -> Option<Vec<Self>> {
// get a new logger
let level = std::env::var("RUST_LOG").unwrap_or_else(|_| "INFO".into());
let (logger, _) = Logger::new(&level);
let logger = Logger::default();

logger.debug_max(&format!("resolving event selector {}", &selector));

Expand Down
Loading
Loading