Skip to content

Commit cccd3f1

Browse files
committed
code review
1 parent c783b07 commit cccd3f1

File tree

3 files changed

+46
-37
lines changed

3 files changed

+46
-37
lines changed

.changes/re-export-log.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
"log": patch
3-
"log-js": patch
2+
"log": minor
3+
"log-js": minor
44
---
55

66
Re-export the log crate.

plugins/log/src/commands.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
2+
// SPDX-License-Identifier: Apache-2.0
3+
// SPDX-License-Identifier: MIT
4+
5+
use std::collections::HashMap;
6+
7+
use log::RecordBuilder;
8+
9+
use crate::{LogLevel, WEBVIEW_TARGET};
10+
11+
#[tauri::command]
12+
pub fn log(
13+
level: LogLevel,
14+
message: String,
15+
location: Option<&str>,
16+
file: Option<&str>,
17+
line: Option<u32>,
18+
key_values: Option<HashMap<String, String>>,
19+
) {
20+
let level = log::Level::from(level);
21+
22+
let target = if let Some(location) = location {
23+
format!("{WEBVIEW_TARGET}:{location}")
24+
} else {
25+
WEBVIEW_TARGET.to_string()
26+
};
27+
28+
let mut builder = RecordBuilder::new();
29+
builder.level(level).target(&target).file(file).line(line);
30+
31+
let key_values = key_values.unwrap_or_default();
32+
let mut kv = HashMap::new();
33+
for (k, v) in key_values.iter() {
34+
kv.insert(k.as_str(), v.as_str());
35+
}
36+
builder.key_values(&kv);
37+
#[cfg(feature = "tracing")]
38+
emit_trace(level, &message, location, file, line, &kv);
39+
40+
log::logger().log(&builder.args(format_args!("{message}")).build());
41+
}

plugins/log/src/lib.rs

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,10 @@
1010
)]
1111

1212
use fern::{Filter, FormatCallback};
13-
use log::{logger, RecordBuilder};
1413
use log::{LevelFilter, Record};
1514
use serde::Serialize;
1615
use serde_repr::{Deserialize_repr, Serialize_repr};
1716
use std::borrow::Cow;
18-
use std::collections::HashMap;
1917
use std::{
2018
fmt::Arguments,
2119
fs::{self, File},
@@ -32,6 +30,8 @@ use time::{macros::format_description, OffsetDateTime};
3230
pub use fern;
3331
pub use log;
3432

33+
mod commands;
34+
3535
pub const WEBVIEW_TARGET: &str = "webview";
3636

3737
#[cfg(target_os = "ios")]
@@ -239,38 +239,6 @@ fn emit_trace(
239239
}
240240
}
241241

242-
#[tauri::command]
243-
fn log(
244-
level: LogLevel,
245-
message: String,
246-
location: Option<&str>,
247-
file: Option<&str>,
248-
line: Option<u32>,
249-
key_values: Option<HashMap<String, String>>,
250-
) {
251-
let level = log::Level::from(level);
252-
253-
let target = if let Some(location) = location {
254-
format!("{WEBVIEW_TARGET}:{location}")
255-
} else {
256-
WEBVIEW_TARGET.to_string()
257-
};
258-
259-
let mut builder = RecordBuilder::new();
260-
builder.level(level).target(&target).file(file).line(line);
261-
262-
let key_values = key_values.unwrap_or_default();
263-
let mut kv = HashMap::new();
264-
for (k, v) in key_values.iter() {
265-
kv.insert(k.as_str(), v.as_str());
266-
}
267-
builder.key_values(&kv);
268-
#[cfg(feature = "tracing")]
269-
emit_trace(level, &message, location, file, line, &kv);
270-
271-
logger().log(&builder.args(format_args!("{message}")).build());
272-
}
273-
274242
pub struct Builder {
275243
dispatch: fern::Dispatch,
276244
rotation_strategy: RotationStrategy,
@@ -529,7 +497,7 @@ impl Builder {
529497
}
530498

531499
fn plugin_builder<R: Runtime>() -> plugin::Builder<R> {
532-
plugin::Builder::new("log").invoke_handler(tauri::generate_handler![log])
500+
plugin::Builder::new("log").invoke_handler(tauri::generate_handler![commands::log])
533501
}
534502

535503
#[allow(clippy::type_complexity)]

0 commit comments

Comments
 (0)