logback.xml 14.9 KB
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> -->
<configuration>

	<!-- <property resource="application.properties" /> -->
	<property name="LOG_BASE" value="E:/bsth_control_logs" />
	<!-- 控制台输出 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

		<layout class="ch.qos.logback.classic.PatternLayout">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>

	<!-- 主日志文件 -->
	<appender name="FILE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/main/main.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/main/main-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>%msg%n</pattern>
		</encoder>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>

	<!-- 访问日志 -->
	<appender name="ACCESS"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/access/access.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/access/access-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.filter.AccessLogFilter" level="INFO"
			additivity="false">
		<appender-ref ref="ACCESS" />
	</logger>

	<!-- 和网关通讯日志日志 -->
	<appender name="GATEWAY"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/gateway/gateway.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/gateway/gateway-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.service.directive.DirectiveServiceImpl"
			level="INFO" additivity="false">
		<appender-ref ref="GATEWAY" />
	</logger>
	<logger name="com.bsth.controller.directive.UpstreamEntrance"
			level="INFO" additivity="false">
		<appender-ref ref="GATEWAY" />
	</logger>
	<logger name="com.bsth.data.directive.GatewayHttpUtils" level="INFO"
			additivity="false">
		<appender-ref ref="GATEWAY" />
	</logger>

	<!-- 运管处接口日志 -->
	<appender name="TRAFFIC"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/traffic/traffic.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/traffic/traffic-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.service.impl.TrafficManageServiceImpl"
			level="INFO" additivity="false">
		<appender-ref ref="TRAFFIC" />
	</logger>

	<!-- schedule 数据工具操作日志 -->
	<appender name="DATATOOLS"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/schedule/datatools/datatools.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/schedule/datatools/datatools-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<!-- schedule 时刻表操作日志 -->
	<appender name="TIMETABLE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/schedule/timetable/timetable.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/schedule/timetable/timetable-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
    <logger name="com.bsth.service.schedule.impl.TTInfoServiceImpl"
            level="INFO" additivity="false">
        <appender-ref ref="TIMETABLE" />
    </logger>
	<logger name="com.bsth.service.schedule.impl.TTInfoDetailServiceImpl"
			level="INFO" additivity="false">
		<appender-ref ref="TIMETABLE" />
	</logger>
	<logger name="com.bsth.service.schedule.utils.DataToolsServiceImpl"
			level="INFO" additivity="false">
		<appender-ref ref="TIMETABLE" />
		<appender-ref ref="DATATOOLS" />
	</logger>

    <!-- 车辆信息同步输出日志 -->
    <appender name="vehicle_data_sync_log" class="ch.qos.logback.classic.sift.SiftingAppender">
        <!-- 鉴别器,使用MDC赋值 -->
        <discriminator>
            <key>taskLogKey</key>
            <defaultValue>default</defaultValue>
        </discriminator>
        <sift>
            <appender name="sys_job_log_file-${jobLogKey}" class="ch.qos.logback.core.FileAppender">
                <file>${LOG_BASE}/datasync/vehicle/vehicle-data-sync.${taskLogKey}.log</file>
                <append>true</append>
                <encoder charset="UTF-8">
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
                </encoder>
            </appender>
        </sift>
    </appender>
    <!-- 车辆信息同步任务 -->
    <logger name="com.bsth.service.schedule.datasync.task" level="info" additivity="false">
        <appender-ref ref="vehicle_data_sync_log"/>
    </logger>

    <!-- 时刻表,排班计划业务修改日志 -->
    <!--<springProfile name="dev">-->
        <!--<appender name="MYDB" class="com.bsth.service.schedule.log.ModuleOperatorDbAppender">-->
            <!--<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">-->
                <!--<dataSource class="org.apache.commons.dbcp.BasicDataSource">-->
                    <!--<driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>-->
                    <!--<url>-->
                        <!--<![CDATA[-->
                            <!--jdbc:mysql://127.0.0.1/test_control?useUnicode=true&characterEncoding=utf-8&useSSL=false-->
                        <!--]]>-->
                    <!--</url>-->
                    <!--<username>root</username>-->
                    <!--<password></password>-->
                    <!--<testOnBorrow>true</testOnBorrow>-->
                    <!--<validationQuery>-->
                        <!--<![CDATA[-->
                            <!--SELECT 1-->
                        <!--]]>-->
                    <!--</validationQuery>-->
                <!--</dataSource>-->
            <!--</connectionSource>-->
        <!--</appender>-->
    <!--</springProfile>-->

    <!--<appender name="ASYNC_MYDB" class="ch.qos.logback.classic.AsyncAppender">-->
        <!--&lt;!&ndash; 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 &ndash;&gt;-->
        <!--<discardingThreshold >0</discardingThreshold>-->
        <!--&lt;!&ndash; 更改默认的队列的深度,该值会影响性能.默认值为256 &ndash;&gt;-->
        <!--<queueSize>512</queueSize>-->
        <!--&lt;!&ndash; 添加附加的appender,最多只能添加一个 &ndash;&gt;-->
        <!--<appender-ref ref ="MYDB"/>-->
    <!--</appender>-->

    <!--<logger name="com.bsth.service.schedule.log.PlanLogger"-->
            <!--level="INFO" additivity="false">-->
        <!--<appender-ref ref="ASYNC_MYDB" />-->
    <!--</logger>-->

    <!-- TODO -->

	<!-- gps -->
	<appender name="GPS_COUNT"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/gps/count.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/gps/count-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.data.gpsdata_v2"
			level="INFO" additivity="false">
		<appender-ref ref="GPS_COUNT" />
	</logger>

	<!-- 设备状态指令 -->
	<appender name="GPS_STATUS_DIRECTIVE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/gps_state/state_directive.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/gps_state/state_directive-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.data.gpsdata.status_manager"
			level="INFO" additivity="false">
		<appender-ref ref="GPS_STATUS_DIRECTIVE" />
	</logger>

	<!-- 消息队列纪录 -->
	<appender name="QUEUE_WEB_SOCKET"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/msg_queue/websocket.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/msg_queue/websocket-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.data.msg_queue.WebSocketPushQueue"
			level="INFO" additivity="false">
		<appender-ref ref="QUEUE_WEB_SOCKET" />
	</logger>
	<appender name="QUEUE_DIRECTIVE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/msg_queue/directive.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/msg_queue/directive-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.data.msg_queue.DirectivePushQueue"
			level="INFO" additivity="false">
		<appender-ref ref="QUEUE_DIRECTIVE" />
	</logger>

	<!--<logger name="org.hibernate.SQL" level="TRACE">-->
	<!--<appender-ref ref="STDOUT" />-->
	<!--</logger>-->

	<!-- 实际排班数据库更新日志 -->
	<!-- 消息队列纪录 -->
	<appender name="REAL_SCHEDULE_UPDATE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${LOG_BASE}/real_sch_db/update.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_BASE}/real_sch_db/update-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>

		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n</pattern>
		</layout>
	</appender>
	<logger name="com.bsth.data.schedule.thread.SchedulePstThread"
			level="INFO" additivity="false">
		<appender-ref ref="REAL_SCHEDULE_UPDATE" />
	</logger>

	<!--JdbcTemplate的日志输出器 -->
	<logger name="org.springframework.jdbc.core.StatementCreatorUtils"
			additivity="false" level="INFO">
		<appender-ref ref="STDOUT" />
	</logger>
	<logger name="org.springframework.jdbc.core" additivity="true">
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
	</logger>
	<logger name="java.sql.Connection" additivity="true">
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
	</logger>
	<logger name="java.sql.Statement" additivity="true">
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
	</logger>
	<logger name="java.sql.PreparedStatement" additivity="true">
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
	</logger>
	<logger name="java.sql.ResultSet" additivity="true">
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
	</logger>
	<!--<logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="true">
		<level value="TRACE" />
		<appender-ref ref="STDOUT" />
	</logger>-->

	<!-- 日志输出级别 -->
	<root level="info">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>
</configuration>