Log4j - 如何在没有其他详细信息的情况下仅将我的消息日志写入文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

我的课:

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(”用户:“+用户名+”连接到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

以上是关于Log4j - 如何在没有其他详细信息的情况下仅将我的消息日志写入文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有互联网的情况下仅使用 GPS 在 android 中获取位置

从数据库中选择日期,但在相同数据的情况下仅显示一个[重复]

Log4j:仅记录消息字符串,不记录 className 和其他详细信息

应用程序在后台模式下仅在 iOS 13 上崩溃

我可以在没有定位服务的情况下仅通过蓝牙框架访问信标设备吗?

为啥在没有 @RunWith(SpringRunner.class) 的情况下仅使用 @SpringBootTest 在 Spring Boot 应用程序中进行测试