/* Copyright 2020 Nicolas Goy * Copyright 2021 Dominik George <dominik.george@teckids.org> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ use crate::BASE_NAME; use std::process; use std::convert::TryInto; use log::{LevelFilter}; use syslog::{BasicLogger, Facility, Formatter3164}; pub fn setup_log(log_level: LevelFilter) { let formatter = Formatter3164 { facility: Facility::LOG_AUTHPRIV, hostname: None, process: BASE_NAME.into(), pid: process::id().try_into().unwrap_or_default(), }; let logger = syslog::unix(formatter).expect("could not connect to syslog"); log::set_boxed_logger(Box::new(BasicLogger::new(logger))).ok(); log::set_max_level(log_level); }