gpt4 book ai didi

rust - log4rs 错误 Log4rs(Os { 代码 : 2, 种类 : NotFound, 消息: "No such file or directory"})

转载 作者:行者123 更新时间:2023-11-29 08:29:34 26 4
gpt4 key购买 nike

我正在尝试通过遵循 the docs 来实现 log4rs .我的目标是将 info!("INFO") 的结果放入文件 requests.log,但出现错误:

thread 'main' panicked at 'called Result::unwrap() on an Err value: Log4rs(Os { code: 2, kind: NotFound, message: "No such file or directory" })', libcore/result.rs:945:5

我在 src 文件夹中有以下文件:

- main.rs
- log4rs.yml
- requests.log

主要.rs:

#[macro_use]
extern crate log;
extern crate log4rs;

fn main() {
println!("Hello, world!");
log4rs::init_file("log4rs.yml", Default::default()).unwrap();
info!("INFO");
}

配置文件log4rs.yml:

# Scan this file for changes every 30 seconds
refresh_rate: 30 seconds

appenders:
# An appender named "stdout" that writes to stdout
stdout:
kind: console

# An appender named "requests" that writes to a file with a custom pattern encoder
requests:
kind: file
path: "requests.log"
encoder:
pattern: "{d} - {m}{n}"

# Set the default logging level to "warn" and attach the "stdout" appender to the root
root:
level: warn
appenders:
- stdout

loggers:
# Raise the maximum log level for events sent to the "app::backend::db" logger to "info"
app::backend::db:
level: info

# Route log events sent to the "app::requests" logger to the "requests" appender,
# and *not* the normal appenders installed at the root
app::requests:
level: info
appenders:
- requests
additive: false

最佳答案

当您键入 cargo run 时,您的工作目录就是当前目录。这意味着您的所有相对路径都将取决于此工作目录。

例如,如果您在您的主目录 (~) 中并且您的项目文件夹名为 foo。当你进入它时,它会给你 ~/foo。如果您现在键入 cargo run,这意味着当 log4rs 尝试打开您的文件时,它将尝试打开文件 ~/foo/log4rs.yml。该文件不在这里,而是在 ~/foo/src/log4rs.yml

你有很多解决方案:

  • log4rs::init_file("src/log4rs.yml", Default::default()).unwrap();
  • log4rs.yml 移动到 foo
  • 使用绝对路径(对于您当前的情况不是一个好的解决方案)

关于rust - log4rs 错误 Log4rs(Os { 代码 : 2, 种类 : NotFound, 消息: "No such file or directory"}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50429582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com