Skip to content

Commit

Permalink
updated api to be cleaner
Browse files Browse the repository at this point in the history
  • Loading branch information
danwritecode committed Apr 28, 2023
1 parent ddf763a commit e0d854c
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

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

25 changes: 13 additions & 12 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@ pub use crate::providers::prelude::*;

use std::sync::{ Arc, Mutex };
use std::time::Duration;
use std::{ mem, panic, thread };
use std::{ mem, panic };

use log::{Log, SetLoggerError};
use anyhow::Result;
use serde::Serialize;
use async_trait::async_trait;
use crossbeam::channel;

use tokio::runtime::Runtime;
use tokio::task;
use tokio::time::sleep;

Expand All @@ -24,7 +22,7 @@ pub trait LogProvider: Send + Sync {


#[derive(Clone)]
pub struct LogAnywhereLogger {
pub struct Logger {
provider: Arc<dyn LogProvider>,
log_buffer_records: Arc<Mutex<Vec<LogAnywhereRecord>>>,
buffer_timing: Arc<u64>,
Expand Down Expand Up @@ -70,9 +68,10 @@ fn set_panic_hook (
) {

panic::set_hook(Box::new(move |p| {
*is_panicking.lock().unwrap() = true;

eprintln!("{}", p);
eprintln!("waiting for log_anywhere to cleanup, 1 second please");
*is_panicking.lock().unwrap() = true;

let file = p.location().map(|l| l.file().to_string());
let line = p.location().map(|l| l.line());
Expand All @@ -91,7 +90,7 @@ fn set_panic_hook (
}));
}

impl LogAnywhereLogger {
impl Logger {
/// Initializes the global logger with a LogAnywhereLogger instance.
///
/// ```no_run
Expand All @@ -110,7 +109,7 @@ impl LogAnywhereLogger {
buffer_timing: u64,
level: log::LevelFilter
) -> Self {
LogAnywhereLogger {
Logger {
provider,
log_buffer_records: Arc::new(Mutex::new(Vec::new())),
buffer_timing: Arc::new(buffer_timing),
Expand All @@ -120,7 +119,7 @@ impl LogAnywhereLogger {
}
}

pub fn init(self: Box<Self>) -> Result<(), SetLoggerError> {
pub fn init(self: Self) -> Result<(), SetLoggerError> {
let level_ptr = Arc::clone(&self.level);

// set panic hook
Expand All @@ -141,7 +140,9 @@ impl LogAnywhereLogger {
)
);

log::set_boxed_logger(self)?;
let boxed_self = Box::new(self);

log::set_boxed_logger(boxed_self)?;
log::set_max_level(*level_ptr);
Ok(())
}
Expand All @@ -155,10 +156,10 @@ pub struct LogAnywhereRecord {
line: Option<u32>
}

unsafe impl Sync for LogAnywhereLogger {}
unsafe impl Send for LogAnywhereLogger {}
unsafe impl Sync for Logger {}
unsafe impl Send for Logger {}

impl Log for LogAnywhereLogger {
impl Log for Logger {
fn enabled(&self, metadata: &log::Metadata) -> bool {
true
}
Expand Down
8 changes: 5 additions & 3 deletions src/providers/axiom.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::sync::Arc;

use reqwest::header::{AUTHORIZATION, CONTENT_TYPE};
use reqwest::header;
use crate::{LogProvider, LogAnywhereRecord};
Expand All @@ -9,11 +11,11 @@ pub struct AxiomProvider {
}

impl AxiomProvider {
pub fn new(auth_token: String, dataset: String) -> AxiomProvider {
AxiomProvider {
pub fn new(auth_token: String, dataset: String) -> Arc<AxiomProvider> {
Arc::new(AxiomProvider {
auth_token,
dataset
}
})
}
}

Expand Down
8 changes: 5 additions & 3 deletions src/providers/db.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::sync::Arc;

use async_trait::async_trait;
use crate::{LogProvider, LogAnywhereRecord};

Expand All @@ -6,11 +8,11 @@ pub struct DbProvider {
}

impl DbProvider {
pub fn new() -> DbProvider {
pub fn new() -> Arc<DbProvider> {
let db_conn = "".to_string();
DbProvider {
Arc::new(DbProvider {
db_conn
}
})
}
}

Expand Down

0 comments on commit e0d854c

Please sign in to comment.