Skip to content

Commit

Permalink
switch to tracing for logging
Browse files Browse the repository at this point in the history
  • Loading branch information
ealmloff committed Sep 6, 2023
1 parent c8127e1 commit c55c17c
Show file tree
Hide file tree
Showing 50 changed files with 95 additions and 78 deletions.
2 changes: 2 additions & 0 deletions Cargo.toml
Expand Up @@ -83,6 +83,8 @@ dioxus-hot-reload = { path = "packages/hot-reload", version = "0.4.0" }
dioxus-fullstack = { path = "packages/fullstack", version = "0.4.1" }
dioxus_server_macro = { path = "packages/server-macro", version = "0.4.1" }
log = "0.4.19"
tracing = "0.1.37"
tracing-futures = "0.2.5"
tokio = "1.28"
slab = "0.4.2"
futures-channel = "0.3.21"
Expand Down
2 changes: 1 addition & 1 deletion packages/core/Cargo.toml
Expand Up @@ -28,7 +28,7 @@ slab = { workspace = true }
futures-channel = { workspace = true }

smallbox = "0.8.1"
log = { workspace = true }
tracing = { workspace = true }

# Serialize the Edits for use in Webview/Liveview instances
serde = { version = "1", features = ["derive"], optional = true }
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/any_props.rs
Expand Up @@ -68,7 +68,7 @@ unsafe impl<'a, P> AnyProps<'a> for VProps<'a, P> {
Ok(None) => RenderReturn::default(),
Err(err) => {
let component_name = cx.name();
log::error!("Error while rendering component `{component_name}`: {err:?}");
tracing::error!("Error while rendering component `{component_name}`: {err:?}");
RenderReturn::default()
}
}
Expand Down
8 changes: 7 additions & 1 deletion packages/core/src/diff.rs
Expand Up @@ -196,14 +196,20 @@ impl<'b> VirtualDom {
right.scope.set(Some(scope_id));

// copy out the box for both
let old = self.scopes[scope_id.0].props.as_ref();
let old_scope = &self.scopes[scope_id.0];
let old = old_scope.props.as_ref();
let new: Box<dyn AnyProps> = right.props.take().unwrap();
let new: Box<dyn AnyProps> = unsafe { std::mem::transmute(new) };

// If the props are static, then we try to memoize by setting the new with the old
// The target scopestate still has the reference to the old props, so there's no need to update anything
// This also implicitly drops the new props since they're not used
if left.static_props && unsafe { old.as_ref().unwrap().memoize(new.as_ref()) } {
tracing::trace!(
"Memoized props for component {:#?} ({})",
scope_id,
old_scope.context().name
);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/events.rs
Expand Up @@ -118,7 +118,7 @@ impl<T: std::fmt::Debug> std::fmt::Debug for Event<T> {
///
/// ```rust, ignore
/// rsx!{
/// MyComponent { onclick: move |evt| log::info!("clicked") }
/// MyComponent { onclick: move |evt| tracing::debug!("clicked") }
/// }
///
/// #[derive(Props)]
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/scope_arena.rs
Expand Up @@ -64,6 +64,7 @@ impl VirtualDom {
let props: &dyn AnyProps = scope.props.as_ref().unwrap().as_ref();
let props: &dyn AnyProps = std::mem::transmute(props);

let _span = tracing::trace_span!("render", scope = %scope.context().name);
props.render(scope).extend_lifetime()
};

Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/virtual_dom.rs
Expand Up @@ -306,6 +306,7 @@ impl VirtualDom {
pub fn mark_dirty(&mut self, id: ScopeId) {
if let Some(scope) = self.get_scope(id) {
let height = scope.height();
tracing::trace!("Marking scope {:?} ({}) as dirty", id, scope.context().name);
self.dirty_scopes.insert(DirtyScope { height, id });
}
}
Expand Down Expand Up @@ -558,7 +559,7 @@ impl VirtualDom {
}
// If an error occurs, we should try to render the default error component and context where the error occured
RenderReturn::Aborted(placeholder) => {
log::info!("Ran into suspended or aborted scope during rebuild");
tracing::debug!("Ran into suspended or aborted scope during rebuild");
let id = self.next_null();
placeholder.id.set(Some(id));
self.mutations.push(Mutation::CreatePlaceholder { id });
Expand Down
2 changes: 1 addition & 1 deletion packages/desktop/Cargo.toml
Expand Up @@ -18,7 +18,7 @@ dioxus-hot-reload = { workspace = true, optional = true }
serde = "1.0.136"
serde_json = "1.0.79"
thiserror = { workspace = true }
log = { workspace = true }
tracing = { workspace = true }
wry = { version = "0.28.0" }
futures-channel = { workspace = true }
tokio = { workspace = true, features = [
Expand Down
4 changes: 2 additions & 2 deletions packages/desktop/src/desktop_context.rs
Expand Up @@ -194,7 +194,7 @@ impl DesktopService {
/// launch print modal
pub fn print(&self) {
if let Err(e) = self.webview.print() {
log::warn!("Open print modal failed: {e}");
tracing::warn!("Open print modal failed: {e}");
}
}

Expand All @@ -209,7 +209,7 @@ impl DesktopService {
self.webview.open_devtools();

#[cfg(not(debug_assertions))]
log::warn!("Devtools are disabled in release builds");
tracing::warn!("Devtools are disabled in release builds");
}

/// Create a wry event handler that listens for wry events.
Expand Down
2 changes: 1 addition & 1 deletion packages/desktop/src/lib.rs
Expand Up @@ -330,7 +330,7 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
if temp.contains_key("href") {
let open = webbrowser::open(temp["href"].as_str().unwrap());
if let Err(e) = open {
log::error!("Open Browser error: {:?}", e);
tracing::error!("Open Browser error: {:?}", e);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/desktop/src/query.rs
Expand Up @@ -123,7 +123,7 @@ impl QueryEngine {
}})
}})();"#
)) {
log::warn!("Query error: {err}");
tracing::warn!("Query error: {err}");
}

Query {
Expand Down
2 changes: 1 addition & 1 deletion packages/dioxus/Cargo.toml
Expand Up @@ -30,7 +30,7 @@ hot-reload = ["dioxus-hot-reload"]

[dev-dependencies]
futures-util = { workspace = true }
log = { workspace = true }
tracing = { workspace = true }
rand = { version = "0.8.4", features = ["small_rng"] }
criterion = "0.3.5"
thiserror = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion packages/fermi/Cargo.toml
Expand Up @@ -14,7 +14,7 @@ keywords = ["dom", "ui", "gui", "react", "state-management"]
[dependencies]
dioxus-core = { workspace = true }
im-rc = { version = "15.0.0", features = ["serde"] }
log = { workspace = true }
tracing = { workspace = true }

[dev-dependencies]
closure = "0.3.0"
8 changes: 4 additions & 4 deletions packages/fermi/src/root.rs
Expand Up @@ -66,14 +66,14 @@ impl AtomRoot {

if let Some(slot) = atoms.get_mut(&ptr) {
slot.value = Rc::new(value);
log::trace!("found item with subscribers {:?}", slot.subscribers);
tracing::trace!("found item with subscribers {:?}", slot.subscribers);

for scope in &slot.subscribers {
log::trace!("updating subcsriber");
tracing::trace!("updating subcsriber");
(self.update_any)(*scope);
}
} else {
log::trace!("no atoms found for {:?}", ptr);
tracing::trace!("no atoms found for {:?}", ptr);
atoms.insert(
ptr,
Slot {
Expand All @@ -96,7 +96,7 @@ impl AtomRoot {
pub fn force_update(&self, ptr: AtomId) {
if let Some(slot) = self.atoms.borrow_mut().get(&ptr) {
for scope in slot.subscribers.iter() {
log::trace!("updating subcsriber");
tracing::trace!("updating subcsriber");
(self.update_any)(*scope);
}
}
Expand Down
3 changes: 2 additions & 1 deletion packages/fullstack/Cargo.toml
Expand Up @@ -44,7 +44,8 @@ dioxus-desktop = { workspace = true, optional = true }
# Router Integration
dioxus-router = { workspace = true, optional = true }

log = { workspace = true }
tracing = { workspace = true }
tracing-futures = { workspace = true }
once_cell = "1.17.1"
thiserror = { workspace = true }
tokio = { workspace = true, features = ["full"], optional = true }
Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/examples/axum-hello-world/src/main.rs
Expand Up @@ -66,7 +66,7 @@ async fn get_server_data() -> Result<String, ServerFnError> {

fn main() {
#[cfg(feature = "web")]
wasm_logger::init(wasm_logger::Config::new(log::Level::Trace));
wasm_logger::init(wasm_logger::Config::new(tracing::Level::Trace));
#[cfg(feature = "ssr")]
simple_logger::SimpleLogger::new().init().unwrap();

Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/examples/salvo-hello-world/src/main.rs
Expand Up @@ -60,7 +60,7 @@ async fn get_server_data() -> Result<String, ServerFnError> {

fn main() {
#[cfg(feature = "web")]
wasm_logger::init(wasm_logger::Config::new(log::Level::Trace));
wasm_logger::init(wasm_logger::Config::new(tracing::Level::Trace));
#[cfg(feature = "ssr")]
simple_logger::SimpleLogger::new().init().unwrap();

Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/examples/warp-hello-world/src/main.rs
Expand Up @@ -60,7 +60,7 @@ async fn get_server_data() -> Result<String, ServerFnError> {

fn main() {
#[cfg(feature = "web")]
wasm_logger::init(wasm_logger::Config::new(log::Level::Trace));
wasm_logger::init(wasm_logger::Config::new(tracing::Level::Trace));
#[cfg(feature = "ssr")]
simple_logger::SimpleLogger::new().init().unwrap();

Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/src/adapters/axum_adapter.rs
Expand Up @@ -389,7 +389,7 @@ pub async fn render_handler<P: Clone + serde::Serialize + Send + Sync + 'static>
response
}
Err(e) => {
log::error!("Failed to render page: {}", e);
tracing::error!("Failed to render page: {}", e);
report_err(e).into_response()
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/src/adapters/salvo_adapter.rs
Expand Up @@ -423,7 +423,7 @@ impl<P: Clone + serde::Serialize + Send + Sync + 'static> Handler for SSRHandler
freshness.write(res.headers_mut());
}
Err(err) => {
log::error!("Error rendering SSR: {}", err);
tracing::error!("Error rendering SSR: {}", err);
res.write_body("Error rendering SSR").unwrap();
}
};
Expand Down
6 changes: 3 additions & 3 deletions packages/fullstack/src/adapters/warp_adapter.rs
Expand Up @@ -84,7 +84,7 @@ use warp::{
/// async move {
/// let req = warp::hyper::Request::from_parts(parts, bytes.into());
/// service.run(req).await.map_err(|err| {
/// log::error!("Server function error: {}", err);
/// tracing::error!("Server function error: {}", err);
/// warp::reject::reject()
/// })
/// }
Expand Down Expand Up @@ -142,7 +142,7 @@ pub fn register_server_fns(server_fn_route: &'static str) -> BoxedFilter<(impl R
async move {
let req = warp::hyper::Request::from_parts(parts, bytes.into());
service.run(req).await.map_err(|err| {
log::error!("Server function error: {}", err);
tracing::error!("Server function error: {}", err);
warp::reject::reject()
})
}
Expand Down Expand Up @@ -222,7 +222,7 @@ pub fn render_ssr<P: Clone + serde::Serialize + Send + Sync + 'static>(
res
}
Err(err) => {
log::error!("Failed to render ssr: {}", err);
tracing::error!("Failed to render ssr: {}", err);
Response::builder()
.status(500)
.body("Failed to render ssr".into())
Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/src/hooks/server_cached.rs
Expand Up @@ -23,7 +23,7 @@ pub fn server_cached<O: 'static + Serialize + DeserializeOwned>(server_fn: impl
let data = server_fn();
let sc = crate::prelude::server_context();
if let Err(err) = sc.push_html_data(&data) {
log::error!("Failed to push HTML data: {}", err);
tracing::error!("Failed to push HTML data: {}", err);
}
data
}
Expand Down
8 changes: 4 additions & 4 deletions packages/fullstack/src/hooks/server_future.rs
Expand Up @@ -47,13 +47,13 @@ where
if first_run {
match crate::html_storage::deserialize::take_server_data() {
Some(data) => {
log::trace!("Loaded {data:?} from server");
tracing::trace!("Loaded {data:?} from server");
*state.value.borrow_mut() = Some(Box::new(data));
state.needs_regen.set(false);
return Some(state);
}
None => {
log::trace!("Failed to load from server... running future");
tracing::trace!("Failed to load from server... running future");
}
};
}
Expand Down Expand Up @@ -82,7 +82,7 @@ where
data = fut.await;
if first_run {
if let Err(err) = crate::prelude::server_context().push_html_data(&data) {
log::error!("Failed to push HTML data: {}", err);
tracing::error!("Failed to push HTML data: {}", err);
};
}
}
Expand All @@ -99,7 +99,7 @@ where
if first_run {
#[cfg(feature = "ssr")]
{
log::trace!("Suspending first run of use_server_future");
tracing::trace!("Suspending first run of use_server_future");
cx.suspend();
}
None
Expand Down
2 changes: 1 addition & 1 deletion packages/fullstack/src/hot_reload.rs
Expand Up @@ -30,7 +30,7 @@ impl Default for HotReloadState {
}

if let Err(err) = tx.send(Some(template)) {
log::error!("Failed to send hot reload message: {}", err);
tracing::error!("Failed to send hot reload message: {}", err);
}
}
dioxus_hot_reload::HotReloadMsg::Shutdown => {
Expand Down
8 changes: 4 additions & 4 deletions packages/fullstack/src/html_storage/deserialize.rs
Expand Up @@ -10,15 +10,15 @@ pub(crate) fn serde_from_bytes<T: DeserializeOwned>(string: &[u8]) -> Option<T>
let decompressed = match STANDARD.decode(string) {
Ok(bytes) => bytes,
Err(err) => {
log::error!("Failed to decode base64: {}", err);
tracing::error!("Failed to decode base64: {}", err);
return None;
}
};

match postcard::from_bytes(&decompressed) {
Ok(data) => Some(data),
Err(err) => {
log::error!("Failed to deserialize: {}", err);
tracing::error!("Failed to deserialize: {}", err);
None
}
}
Expand All @@ -32,14 +32,14 @@ static SERVER_DATA: once_cell::sync::Lazy<Option<HTMLDataCursor>> =
let element = match window.get_element_by_id("dioxus-storage-data") {
Some(element) => element,
None => {
log::error!("Failed to get element by id: dioxus-storage-data");
tracing::error!("Failed to get element by id: dioxus-storage-data");
return None;
}
};
let attribute = match element.get_attribute("data-serialized") {
Some(attribute) => attribute,
None => {
log::error!("Failed to get attribute: data-serialized");
tracing::error!("Failed to get attribute: data-serialized");
return None;
}
};
Expand Down
4 changes: 2 additions & 2 deletions packages/fullstack/src/html_storage/mod.rs
Expand Up @@ -36,7 +36,7 @@ impl HTMLDataCursor {
pub fn take<T: DeserializeOwned>(&self) -> Option<T> {
let current = self.index.load(std::sync::atomic::Ordering::SeqCst);
if current >= self.data.len() {
log::error!(
tracing::error!(
"Tried to take more data than was available, len: {}, index: {}",
self.data.len(),
current
Expand All @@ -48,7 +48,7 @@ impl HTMLDataCursor {
match postcard::from_bytes(cursor) {
Ok(x) => Some(x),
Err(e) => {
log::error!("Error deserializing data: {:?}", e);
tracing::error!("Error deserializing data: {:?}", e);
None
}
}
Expand Down
7 changes: 6 additions & 1 deletion packages/fullstack/src/layer.rs
@@ -1,4 +1,5 @@
use std::pin::Pin;
use tracing_futures::Instrument;

use http::{Request, Response};

Expand Down Expand Up @@ -45,7 +46,11 @@ where
> + Send,
>,
> {
let fut = self.call(req);
let fut = self.call(req).instrument(tracing::trace_span!(
"service",
"{}",
std::any::type_name::<S>()
));
Box::pin(async move { fut.await.map_err(|err| err.into()) })
}
}
Expand Down

0 comments on commit c55c17c

Please sign in to comment.