有没有办法使用Java程序或使用log4J之类的日志框架将白色笑脸等unicode字符打印到日志文件中
答案 0 :(得分:1)
是的,您可以将 Unicode characters 写入日志文件。
实例化org.apache.log4j.Logger
对象,设置适当的参数(参见下面的测试示例),然后
logger.info("☺");
或
logger.info(String.valueOf(Character.toChars(0x263A)));
在第二种情况下,我们使用的是unicode字符的 unicode code point 。
import org.apache.log4j.*;
import org.junit.runner.Description;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunListener;
class ExecutionListener extends RunListener {
private final Logger logger;
/**
* Constructor for class ExecutionListener.
*/
public ExecutionListener() {
logger = LogManager.getLogger(GenericTaskInterpreterTests.class);
FileAppender fileAppender = new FileAppender();
fileAppender.setName("FileLogger");
fileAppender.setFile("path/to/log4j-application.log");
fileAppender.setLayout(new PatternLayout("%d %-5p [%c{1}.%M] %m%n"));
fileAppender.setThreshold(Level.DEBUG);
fileAppender.setAppend(true);
fileAppender.activateOptions();
LogManager.getRootLogger().addAppender(fileAppender);
}
/**
* Called when all tests have finished
*/
public void testRunFinished(Result result) throws Exception {
logger.info("Number of testcases executed : " + result.getRunCount());
logger.info("Number of testcases failed : " + result.getFailureCount());
logger.info("☺"); // This gets written to the log file
logger.info(String.valueOf(Character.toChars(0x263A))); // Same thing as above, smiley face gets written to log file.
}
}
答案 1 :(得分:0)
是的,您只需要确保文件是以可以表示这些字符的Unicode编码编写的。那将是UTF-8或UTF-16。
查看日志文件时,您需要一个能够读取UTF-8 / UTF-16的编辑器,并且该编辑器具有显示这些字符的相应字体。