java - Log4j - 如何仅将消息日志写入文件而无需其他详细信息

标签 java logging log4j

我使用logger(Log4j)来创建我的文件日志程序。

log4j.properties 文件:

# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\WorkSpace\\ToDoList\\src\\log\\log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

我的类(class):

import org.apache.log4j.Logger;

@WebServlet("/Login")
public class LoginApp extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private final static Logger logger = Logger.getLogger(LoginApp.class);
    private final static HibernateToDoListDao actions = HibernateToDoListDao.getInstance();

    public LoginApp() 
    {
        super();
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response)
    {           
        try
        {
                logger.info("The user: "+ username+" connect to app.");
                request.getRequestDispatcher("Index.jsp").forward(request, response);
        }
        catch(ToDoListDaoException e)
        {
            System.out.println(e.getMessage());
        }
    }
}

我的文件日志:

2017-01-14 17:14:29 DEBUG AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2017-01-14 17:14:29 DEBUG TwoPhaseLoad:131 - resolving associations for [model.User#1]
2017-01-14 17:14:29 DEBUG TwoPhaseLoad:239 - done materializing entity [model.User#1]
2017-01-14 17:14:29 DEBUG StatefulPersistenceContext:892 - initializing non-lazy collections
2017-01-14 17:14:29 DEBUG ConnectionManager:427 - aggressively releasing JDBC connection

我怎样才能只将我的消息日志写入文件而无需其他详细信息。 例如在我的类里面只有这一行

"logger.info("The user: "+ username +"connect to app.")"

将写入文件。

谢谢

最佳答案

您需要在 log4j 配置文件中设置要启用日志记录的包名称。您的配置文件应如下所示。请记住将您的包名称写在 2 行中 -

# Root logger option
log4j.rootLogger=ERROR, stdout, file
# Write your package Name here
log4j.logger.packageName=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\WorkSpace\\ToDoList\\src\\log\\log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

关于java - Log4j - 如何仅将消息日志写入文件而无需其他详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41651605/

相关文章:

java - 强制转换 List<> 覆盖 Java 中的内部类

带有嵌入式 Derby 数据库的 Java 应用程序

java - 轻松禁用小程序的 log4j?

python - 如何在 Python 中装饰控制台记录器消息?

java - 您如何为您的 Java Web 应用程序自动化 Javascript 缩小?

java - hibernate 3.6.7 orphanRemoval 级联单向

Python:如何进行惰性调试日志记录

java - 从 spring-boot-starter-web 中排除 Logback 依赖项会阻止 log4j 系统正确初始化

java - 如何配置 log4j 按时间、大小和启动时滚动?

java - Log4j 解析错误在 SMTPAppender 上添加 triggeringPolicy