虚幻4LOG的使用

LOG配置说明

  • 可以在 DefaultEngine.ini 中修改以下几项配置
    [LogFiles]
    ; 5天前的log全部删除,-1为不清理
    PurgeLogsDays=5
    
    ; 最多保留最近的10个log文件,-1为不清理
    MaxLogFilesOnDisk=10
    
    ; log中的时间格式,True为UTC时间戳,False为不输出时间戳,SinceStart 为自进程启动以来的秒数
    LogTimes=True
    
    
    
    
    

LOG命令行参数说明

  • -LOG

    • 指定log文件名称,默认为 游戏名称.log
    • 例如:-LOG=CustomName.log
    • 说明:
      • 会自动创建log路径中不存在的文件夹
  • -ABSLOG

    • 指定log文件的完整路径,默认为 工程目录\Saved\Logs\游戏名称.log
    • 例如:-ABSLOG=D:/CustomName.log
    • 说明:
      • 如果同时指定 -LOG-ABSLOG,只会生效 -LOG
      • 会自动创建log路径中不存在的文件夹
  • -FORCELOGFLUSH

    • 输出log时实时写到log文件中,默认为缓冲区满了才写到log中
  • log中的时间戳格式

    • -LOGTIMES

      • log中的时间为UTC时间戳
    • -NOLOGTIMES

      • 不带时间戳
    • -LOGTIMESINCESTART

      • log中的时间为自进程启动以来的秒数
    • 优先级:-LOGTIMES > -NOLOGTIMES > -LOGTIMESINCESTART

      • 意思就是命令行中同时存在这些命令,以优先级高的为准
      • 如果命令行中指定了时间戳格式,那么以命令行中的为准,忽略配置文件中的时间格式配置

LOG宏的使用

  • LOG声明

    /** 
     A macro to declare a logging category as a C++ "extern" 
     @param CategoryName, 新的log分类名称
     @param DefaultVerbosity, 该log分类的日志等级(小于这个log等级的日志都不会被输出)
     @param CompileTimeVerbosity, 该log分类最大的日志等级
     /
    DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity);
    
    
      例如:
      ``` cpp
      // 声明一个LogTest分类,默认日志等级为Log,最大支持的日志等级为All
      DECLARE_LOG_CATEGORY_EXTERN(LogTest, Log, All);
    
    
    
  • LOG实现

    DEFINE_LOG_CATEGORY(CategoryName)
    
    
      例如:
      ``` cpp
      DEFINE_LOG_CATEGORY(LogTest)
    
    
    

日志等级

namespace ELogVerbosity
{
	enum Type
	{
		/** 禁用,不输出任何log */
		NoLogging		= 0,

		/** 致命错误等级,同时输出到控制台和文件中
		 * Always prints s fatal error to console (and log file) and crashes (even if logging is disabled)
		 */
		Fatal,

		/** 错误等级,同时输出到控制台和文件中
		 * Prints a warning to console (and log file).
		 * Commandlets and the editor collect and report warnings. Warnings can be treated as an error.
		 */
		Error,

		/**
		 * 警告等级,同时输出到控制台和文件中
		 * Prints a warning to console (and log file).
		 * Commandlets and the editor collect and report warnings. Warnings can be treated as an error.
		 */
		Warning,

		/**
		 * 信息等级,同时输出到控制台和文件中
		 * Prints a message to console (and log file)
		 */
		Display,

		/**
		 * 日志等级,只输出到文件中
		 * Prints a message to a log file (does not print to console)
		 */
		Log,

		/**
		 * 详细等级
		 * Prints a verbose message to a log file (if Verbose logging is enabled for the given category, 
		 * usually used for detailed logging) 
		 */
		Verbose,

		/**
		 * 调试等级
		 * Prints a verbose message to a log file (if VeryVerbose logging is enabled, 
		 * usually used for detailed logging that would otherwise spam output) 
		 */
		VeryVerbose,

		// Log masks and special Enum values

		All				= VeryVerbose,
		NumVerbosity,
		VerbosityMask	= 0xf,
		SetColor		= 0x40, // not actually a verbosity, used to set the color of an output device 
		BreakOnLog		= 0x80
	};
}