Improve derbugg logging (#1738)

* Improve derbugg logging

Make it more readable

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

* Fix excessive logging

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>

---------

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2024-06-13 00:25:24 +10:00 committed by GitHub
parent a2d2c5d85c
commit 4687726c66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 54 additions and 15 deletions

View file

@ -212,7 +212,7 @@ impl Download<'_> {
///
/// NOTE that this API does not support gnu extension sparse file unlike
/// [`Download::and_extract`].
#[instrument(skip(visitor))]
#[instrument(skip(self, visitor))]
pub async fn and_visit_tar(
self,
fmt: TarBasedFmt,
@ -239,7 +239,10 @@ impl Download<'_> {
/// Download a file from the provided URL and extract it to the provided path.
///
/// NOTE that this will only extract directory and regular files.
#[instrument(skip(path))]
#[instrument(
skip(self, path),
fields(path = format_args!("{}", path.as_ref().display()))
)]
pub async fn and_extract(
self,
fmt: PkgFmt,
@ -277,7 +280,7 @@ impl Download<'_> {
inner(self, fmt, path.as_ref()).await
}
#[instrument]
#[instrument(skip(self))]
pub async fn into_bytes(self) -> Result<Bytes, DownloadError> {
let bytes = self.content.into_response().await?.bytes().await?;
if let Some(verifier) = self.data_verifier {

View file

@ -165,7 +165,12 @@ impl Client {
///
/// Return `Ok(ControlFlow::Break(response))` when succeeds and no need
/// to retry.
#[instrument]
#[instrument(
skip(self, url),
fields(
url = format_args!("{url}"),
),
)]
async fn do_send_request(
&self,
request: Request,

View file

@ -26,7 +26,7 @@ impl Resolve for TrustDnsResolver {
}
}
#[instrument(level = "trace")]
#[instrument]
fn new_resolver() -> Result<TokioAsyncResolver, BoxError> {
#[cfg(unix)]
{
@ -61,7 +61,7 @@ fn new_resolver() -> Result<TokioAsyncResolver, BoxError> {
}
#[cfg(windows)]
#[instrument(level = "trace")]
#[instrument]
fn get_adapter() -> Result<ipconfig::Adapter, BoxError> {
debug!("Retrieving local IP address");
let local_ip =

View file

@ -180,7 +180,7 @@ impl Data {
}
}
#[instrument(level = "debug")]
#[instrument(skip(client))]
async fn get_repo_info(&self, client: &GhApiClient) -> Result<Option<&RepoInfo>, FetchError> {
self.repo_info
.get_or_try_init(move || {

View file

@ -12,7 +12,7 @@ use std::{
use binstalk_downloader::{download::Download, remote};
use compact_str::{format_compact, CompactString, ToCompactString};
use tokio::sync::OnceCell;
use tracing::instrument;
use tracing::{instrument, Level};
use url::Url;
mod common;
@ -224,7 +224,7 @@ impl GhApiClient {
.map_err(|err| err.context("Restful API"))
}
#[instrument(level = "debug", skip(self), ret)]
#[instrument(skip(self), ret(level = Level::DEBUG))]
pub async fn get_repo_info(&self, repo: &GhRepo) -> Result<Option<RepoInfo>, GhApiError> {
match self
.do_fetch(
@ -248,7 +248,7 @@ impl GhApiClient {
/// Return `Ok(Some(api_artifact_url))` if exists.
///
/// The returned future is guaranteed to be pointer size.
#[instrument(level = "debug", skip(self), ret)]
#[instrument(skip(self), ret(level = Level::DEBUG))]
pub async fn has_release_artifact(
&self,
GhReleaseArtifact {

View file

@ -1,4 +1,4 @@
use std::future::Future;
use std::{fmt, future::Future};
use compact_str::CompactString;
use serde::Deserialize;
@ -20,6 +20,16 @@ pub struct RepoInfo {
private: bool,
}
impl fmt::Display for RepoInfo {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"RepoInfo {{ owner: {}, name: {}, is_private: {} }}",
self.owner.login, self.name, self.private
)
}
}
impl RepoInfo {
#[cfg(test)]
pub(crate) fn new(GhRepo { owner, repo }: GhRepo, private: bool) -> Self {

View file

@ -55,7 +55,12 @@ impl DataVerifier for Sha256Digest {
}
}
#[instrument]
#[instrument(
skip(client, crate_url),
fields(
crate_url = format_args!("{crate_url}"),
),
)]
pub(super) async fn parse_manifest(
client: Client,
crate_name: &str,

View file

@ -105,7 +105,12 @@ async fn fetch_crate_cratesio_version_matched(
/// Find the crate by name, get its latest stable version matches `version_req`,
/// retrieve its Cargo.toml and infer all its bins.
#[instrument]
#[instrument(
skip(client),
fields(
version_req = format_args!("{version_req}"),
)
)]
pub async fn fetch_crate_cratesio_api(
client: Client,
name: &str,

View file

@ -97,7 +97,12 @@ impl GitRegistry {
)
}
#[instrument]
#[instrument(
skip(self, client, version_req),
fields(
version_req = format_args!("{version_req}"),
),
)]
pub async fn fetch_crate_matched(
&self,
client: Client,

View file

@ -78,7 +78,13 @@ impl SparseRegistry {
)
}
#[instrument]
#[instrument(
skip(self, client, version_req),
fields(
registry_url = format_args!("{}", self.url),
version_req = format_args!("{version_req}"),
)
)]
pub async fn fetch_crate_matched(
&self,
client: Client,