import logging
import warnings

# 忽略所有 UserWarning 警告
warnings.filterwarnings("ignore", category=UserWarning)

# 1、设置全局的日志格式和级别
logging.basicConfig(format='%(asctime)s - %(levelname)s - %(name)s - %(message)s',
                    datefmt='%m/%d/%Y %H:%M:%S',
                    level=logging.INFO)

# 2、获取logger （给日志器起个名字 "__name__"）
logger = logging.getLogger(__name__)# __name__内置变量模块名称，轻松地识别出哪个模块产生了哪些日志消息（主程序模块）

# 3、创建文件处理器，指定日志文件和日志级别（局部）---文件输出FileHandle（输出到指定文件）
file_handler = logging.FileHandler('application.log') #指定日志文件名application.log，默认在当前目录下创建
file_handler.setLevel(logging.INFO) # 设置日志级别(只输出对应级别INFO的日志信息)
# 设置日志格式
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(name)s - %(message)s', '%m/%d/%Y %H:%M:%S'))

# 4、添加文件处理器到logger
logger.addHandler(file_handler)

# 训练模型的代码
epoch = 7
# 记录日志信息
logger.info("Get better performance at epoch {}".format(epoch))

# 在主类中编写日志代码
# 判断当前程序是否为主程序，确保 main() 函数只在直接运行该Python文件时执行，如果文件被其他模块导入，则不执行 main()
# 主程序内置变量 __name__

