本文共 3304 字,大约阅读时间需要 11 分钟。
我们有三个独立的项目模块,分别负责不同的功能:基础服务、存储服务和搜索服务。为了方便管理和追踪,我们需要统一记录所有日志到一个全局日志文件中,同时还需要为搜索模块单独设置日志文件。
com.chuanliu.platform.activity.persist
目录下com.chuanliu.platform.activity
目录下com.chuanliu.platform.activity.solr
目录下为了适配不同操作系统的目录结构,我们需要根据环境设置不同的日志存储位置。例如:
C:/logs
/usr/local/var/logs
/usr/local/var/logs
我们可以使用log4j来实现日志记录功能,以下是推荐的配置方式:
log4j.rootLogger = infolog4j.debug = falselog4j.category.com.chuanliu.platform.activity = info, full, stdoutlog4j.additivity.com.chuanliu.platform.activity.platform.activity = falselog4j.category.com.chuanliu.platform.activity.solr = info, solrlog4j.additivity.com.chuanliu.platform.activity.platform.activity.solr = false
log4j.appender.full = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.full.File = ${LogFile.Location}/full.loglog4j.appender.full.DatePattern = '.'yyyy-MM-ddlog4j.appender.full.layout = org.apache.log4j.PatternLayoutlog4j.appender.full.layout.conversionPattern = %d [%t] %-5p %c{1} - %m%nlog4j.appender.full.ImmediateFlush = truelog4j.appender.full.append = truelog4j.appender.solr = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.solr.File = ${LogFile.Location}/solr.loglog4j.appender.solr.DatePattern = '.'yyyy-MM-ddlog4j.appender.solr.layout = org.apache.log4j.PatternLayoutlog4j.appender.solr.layout.conversionPattern = %d [%t] %-5p %c{1} - %m%nlog4j.appender.solr.ImmediateFlush = truelog4j.appender.solr.append = truelog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = [%d][%p]%t: %m%n# MyBatis日志等级设置log4j.logger.mybatis = TRACElog4j.logger.springframework.web = DEBUG
通过上述配置,我们可以确保:
com.chuanliu.platform.activity
包下的日志都记录到full.log
com.chuanliu.platform.activity.solr
包下的日志单独记录到solr.log
为了适配不同操作系统,我们可以通过配置文件来设置日志存储路径。例如:
LogFile.Location=C:/logs
LogFile.Location=/usr/local/var/logs
LogFile.Location=/usr/local/var/logs
在实际应用中,我们需要确保日志路径在不同操作系统下都能正确解析:
/usr/local/var/logs
路径C:/logs
或C:/var/logs
路径 C:/
和C:\
是不同的路径C:/
格式,确保文件系统支持这种写法logs
目录,配置LogFile.Location=C:/logs
conf
目录下添加logging.properties
文件,配置LogFile.Location=/usr/local/var/logs
log4j.rootLogger = INFOlog4j.appender.full=DailyRollingFileAppenderlog4j.appender.full.File=${LogFile.Location}/full.log...
在实际应用中,如果需要动态重载日志配置文件,可以使用log4j-properties.dtd
格式:
LogFile.Location ${env:LogFile.Location} ${LogFile.Location}/full.log ...${LogFile.Location}/solr.log ...
tail -f /usr/local/var/logs/full.log
查看实时日志type C:\logs\full.log
查看实时日志日志文件夹不存在:
mkdir -p /usr/local/var/logs
创建必要的目录日志重复输出:
additivity
属性,确保com.chuanliu.platform.activity
和com.chuanliu.platform.activity.solr
的additivity
属性都设置为false
环境变量配置:
logging.properties
中设置LogFile.Location=${env:LogFile.Location}
通过以上配置和实践,我们可以轻松实现多模块日志统一管理和跨平台适配,确保日志记录的准确性和可追溯性。
转载地址:http://udufk.baihongyu.com/