#ifndef LOG_HPP_
#define LOG_HPP_

#include <string>

#include <Utilities/Extern.hpp>
#include <Utilities/Utilities.hpp>

namespace Log
{
    /**
     * @brief Initialize the log system.
     */
    void init(std::string logFilePath);

    /**
     * @brief Write an information line to the log.
     * 
     * @param line The line to write.
     */
    void info(std::string line);

    /**
     * @brief Write a warning line to the log.
     * 
     * @param line The line to write.
     */
    void warn(std::string line);

    /**
     * @brief Write an error line to the log.
     * 
     * @param line The line to write.
     */
    void error(std::string line);

    /**
     * @brief Write a debug line to the log.
     * 
     * @param line The line to write.
     */
    void debug(std::string line);

    /**
     * @brief Flush the logs.
     */
    void flush();
}

#endif