#java #logging #log4j
#java #ведение журнала #log4j
Вопрос:
Я получаю вопросительный знак там, где должны отображаться имя класса и номер строки.
Вот мой log4j.properties
файл
logfile=C:/Softwares/logFiles
log4j.rootLogger=ERROR, generalDebug, generalError
log4j.appender.generalDebug=org.apache.log4j.RollingFileAppender
log4j.appender.generalDebug.File=${logfile}/debug.log
log4j.appender.generalDebug.MaxFileSize=10MB
log4j.appender.generalDebug.MaxBackupIndex=10
log4j.appender.generalDebug.layout=org.apache.log4j.PatternLayout
log4j.appender.generalDebug.layout.ConversionPattern=[%-5p] %d{ISO8601}|%r %C|%L|%x - %m%n
log4j.appender.generalDebug.Threshold=DEBUG
log4j.appender.generalError=org.apache.log4j.RollingFileAppender
log4j.appender.generalError.File=${logfile}/error.log
log4j.appender.generalError.MaxFileSize=10MB
log4j.appender.generalError.MaxBackupIndex=10
log4j.appender.generalError.layout=org.apache.log4j.PatternLayout
log4j.appender.generalError.layout.ConversionPattern=[%-5p] %d{ISO8601}|%r %C|%L|%x - %m%n
log4j.appender.generalError.Threshold=ERROR
#######################################################################
log4j.logger.Logging=DEBUG, HipDebug, HipError
log4j.additivity.Logging=false
log4j.appender.HipDebug=org.apache.log4j.RollingFileAppender
log4j.appender.HipDebug.File=${logfile}/HipDebug.log
log4j.appender.HipDebug.MaxFileSize=10MB
log4j.appender.HipDebug.MaxBackupIndex=10
log4j.appender.HipDebug.layout=org.apache.log4j.PatternLayout
log4j.appender.HipDebug.layout.ConversionPattern=[%-5p] %d{ISO8601}|%r %C|%L|%x - %m%n
log4j.appender.HipDebug.Threshold=DEBUG
log4j.appender.HipError=org.apache.log4j.RollingFileAppender
log4j.appender.HipError.File=${logfile}/HipError.log
log4j.appender.HipError.MaxFileSize=10MB
log4j.appender.HipError.MaxBackupIndex=10
log4j.appender.HipError.layout=org.apache.log4j.PatternLayout
log4j.appender.HipError.layout.ConversionPattern=[%-5p] %d{ISO8601}|%r %C|%L|%x - %m%n
log4j.appender.HipError.Threshold=ERROR
Журнал я получаю как на уровне ОТЛАДКИ, так и на уровне ОШИБОК.
[ERROR] 2019-04-11 22:40:30,975|0 ?|?| - I'm Writing
[DEBUG] 2019-04-11 22:40:30,975|0 ?|?| - I'm Writing
Вот мой код:
PropertyConfigurator.configure("C:\Softwares\ConfigFiles\log4j.properties");
Logger logger = Logger.getLogger(Logeverything.class);
logger.log(Logeverything.class.getCanonicalName(), Level.ERROR, "I'm Writing", null);
Может кто-нибудь, пожалуйста, скажите мне, что здесь не так?
Спасибо
Ответ №1:
Используйте logger.error("I'm Writing");
вместо logger.log(Logeverything.class.getCanonicalName(), Level.ERROR, "I'm Writing", null);
Logeverything.java
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Logeverything {
static {
PropertyConfigurator.configure("src/main/resources/ConfigFiles/log4j.properties");
}
private static Logger logger = Logger.getLogger(Logeverything.class);
public static void main(String[] args) {
logger.error("I'm Writing");
}
}
$ cat error.log
[ERROR] 2019-04-11 10:56:16,302|0 Logeverything|14| - I'm Writing
Комментарии:
1. Теперь он печатается нормально, но почему он показывает вопросительный знак так, как я использую?