Докер-контейнер Rust Actix-Web не отображает журналыLinux

Ответить Пред. темаСлед. тема
Гость
 Докер-контейнер Rust Actix-Web не отображает журналы

Сообщение Гость »

Я создаю сервер API, используя фреймворк Actix-Web на Rust. Я без проблем создаю и проверяю логи (используя log4rs) в локальной среде. После Dockerization Docker запускается без проблем, но журнал шкафчика не проверяется.

Код: Выделить всё

App main.rs

#[actix_web::main]
async fn main() -> std::io::Result {
//로깅
match log4rs::init_file("log4rs.yml", Default::default()) {
Ok(_) => {}
Err(e) => {
println!("{}", e);
}
}

let configuration = get_configuration().expect("F to read config");
let address = format!(
"{}:{}",
configuration.application.host, configuration.application.port
);

//DB
//let connection_pool = PgPool::connect(&configuration.database.connection_string()).await.expect("F to connect db");
let connection_pool = PgPoolOptions::new()
.max_connections(5)
.acquire_timeout(std::time::Duration::from_secs(2))
.connect_lazy(&configuration.database.connection_string())
.expect("F to connect db");
//let db_pool = web::Data::new(connection_pool);

//데이터초기화
match check_and_insert_default_data(connection_pool.clone()).await {
Ok(_) => info!("Default data checked and inserted if necessary"),
Err(e) => info!("Failed to insert default data: {}", e),
}
run(address, connection_pool)?.await
}

Код: Выделить всё

log4rs.yaml

refresh_rate: 30 seconds

appenders:
# An appender named "stdout" that writes to stdout
stdout:
kind: console
filters:
- kind: threshold
level: debug

trace:
kind: file
filters:
- kind: threshold
level: trace
path: "logs/trace.log"
encoder:
pattern: "{d(%Y-%m-%d %H:%M:%S %Z)(utc)} - {l}:{m}{n}"

debug:
kind: file
filters:
- kind: threshold
level: debug
path: "logs/debug.log"
encoder:
pattern: "{d(%Y-%m-%d %H:%M:%S %Z)(utc)} - {l}:{m}{n}"

info:
kind: file
filters:
- kind: threshold
level: info
path: "logs/info.log"
encoder:
pattern: "{d(%Y-%m-%d %H:%M:%S %Z)(utc)} - {l}:{m}{n}"

warn:
kind: file
filters:
- kind: threshold
level: warn
path: "logs/warn.log"
encoder:
pattern: "{d(%Y-%m-%d %H:%M:%S %Z)(utc)} - {l}:{m}{n}"

error:
kind: file
filters:
- kind: threshold
level: error
path: "logs/error.log"
encoder:
pattern: "{d(%Y-%m-%d %H:%M:%S %Z)(utc)} - {l}:{m}{n}"

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

- error

Код: Выделить всё

#docker file
FROM rust:1.77.1-slim AS builder

WORKDIR /usr/src/back

RUN cargo init .
COPY Cargo* ./
RUN cargo build --release && \
rm target/release/deps/back*

COPY . .
RUN cargo build --release

FROM rust:1.77.1-slim

WORKDIR /usr/local/bin

COPY --from=builder /usr/src/back/configuration ./configuration
COPY --from=builder /usr/src/back/target/release/back .

ENV APP_ENVIRONMENT production
CMD ["./back"]
#docker run

Код: Выделить всё

docker run -d -p 8082:8082 --rm --name rustback back
--------------------------------------- ---
Пример локального журнала
2024-07-26T13:29:01.947045500+09:00 Назад INFO — данные по умолчанию проверены и вставлены при необходимости
2024-07-26T13:29:01.961803100+09:00 INFO actix_server::builder - запуск 12 рабочих
2024-07- 26T13:29:01.962299400+09:00 ИНФОРМАЦИЯ actix_server::server — найдена среда выполнения Actix; запуск во время выполнения Actix
Пример журнала Docker для Ubuntu
Нет такого файла или каталога (ошибка ОС 2)
Я не уверен, связана ли проблема с файлом Docker или с настройками приложения.
один и тот же журнал отображается на сервере Linux и локально

Подробнее здесь: https://stackoverflow.com/questions/787 ... ws-up-logs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»