Logback-ext-mongodb

前端时间公司要求将日志写入到mongodb数据库中,日志使用的是Logback,在网上学习了一下,发现很多实例都是用的mongodb-2.5.3版本的驱动,我这里使用的是3.2.2最新的驱动,有一些改变,实例如下:

Logback拓展文件:

import org.bson.Document;

import ch.qos.logback.classic.spi.ILoggingEvent;

public class MongoDBAppender extends MongoDBAppenderBase<ILoggingEvent> {

	public MongoDBAppender() {
		super("logback");
	}

	@Override
	protected Document toMongoDocument(ILoggingEvent eventObject) {
		final Document doc = new Document();
		doc.append("date", DateUtil.formatDate(eventObject.getTimeStamp(),"yyyy-MM-dd HH:mm:ss"));
		doc.append("level", eventObject.getLevel().toString());
		doc.append("logger", eventObject.getLoggerName());
		doc.append("thread", eventObject.getThreadName());
		doc.append("message", eventObject.getFormattedMessage());
		if (eventObject.getMDCPropertyMap() != null && !eventObject.getMDCPropertyMap().isEmpty()) {
			doc.append("mdc", eventObject.getMDCPropertyMap());
		}
		return doc;
	}
}
拓展文件<pre name="code" class="java">import java.net.UnknownHostException;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.ServerAddress;
import com.mongodb.WriteConcern;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

import ch.qos.logback.core.UnsynchronizedAppenderBase;


public abstract class MongoDBAppenderBase<E> extends UnsynchronizedAppenderBase<E>{

	private MongoClient mongoClient;  
    private MongoCollection<Document> eventsCollection;  
  
    private String host;  
    private int port;  
    private String dbName;  
    private String collectionName;  
    private String username;  
    private String password;  
    protected String source;  
  
    private int connectionsPerHost = 10;  
    private int threadsAllowedToBlockForConnectionMultiplier = 5;  
    private int maxWaitTime = 1000 * 60 * 2;  
    private int connectTimeout;  
    private int socketTimeout;  
  
    protected MongoDBAppenderBase(String collectionName) {  
        this.collectionName = collectionName;  
    }  

    private void connectToMongoDB() throws UnknownHostException {
    	
    	//用户名密码验证方式,暂时不用
    	//List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
    	//mongoCredentialList.add(MongoCredential.createMongoCRCredential(username, dbName, password.toCharArray()));
    	//mongoClient = new MongoClient(new ServerAddress(host, port), mongoCredentialList, buildOptions());
    	
    	mongoClient = new MongoClient(new ServerAddress(host, port), buildOptions());
    	mongoClient.setWriteConcern(new WriteConcern(0));//写策略不需要确认,效率更高
    	
    	MongoDatabase database = mongoClient.getDatabase(this.dbName);
    	eventsCollection = database.getCollection(collectionName);
    }  
  
   private MongoClientOptions buildOptions() {
   	final MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
    	builder.connectionsPerHost(connectionsPerHost);
    	builder.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
   	builder.maxWaitTime(maxWaitTime);
    	builder.connectTimeout(connectTimeout);
    	builder.socketTimeout(socketTimeout);
    	final MongoClientOptions options = builder.build();
		return options;
    	
    }
    
    @Override  
    public void start() {  
        try {  
            connectToMongoDB();  
            super.start();  
        } catch (UnknownHostException e) {  
            addError("Error connecting to MongoDB server: " + host + ":" + port, e);  
        }  
    }  
    
    protected abstract Document toMongoDocument(E event);  
  
    @Override  
    protected void append(E eventObject) {
eventsCollection.insertOne(toMongoDocument(eventObject)); 
}  
  
    @Override  
    public void stop() {  
        if (mongoClient != null) {
        	mongoClient.close();
        }
        super.stop();  
    }  
  
    public void setHost(String host) {  
        this.host = host;  
    }  
  
    public void setPort(int port) {  
        this.port = port;  
    }  
  
    public void setDbName(String dbName) {  
        this.dbName = dbName;  
    }  
  
    public void setCollectionName(String collectionName) {  
        this.collectionName = collectionName;  
    }  
  
    public void setUsername(String username) {  
        this.username = username;  
    }  
  
    public void setPassword(String password) {  
        this.password = password;  
    }  
  
    public void setConnectionsPerHost(int connectionsPerHost) {  
        this.connectionsPerHost = connectionsPerHost;  
    }  
  
    public void setThreadsAllowedToBlockForConnectionMultiplier(  
            int threadsAllowedToBlockForConnectionMultiplier) {  
        this.threadsAllowedToBlockForConnectionMultiplier = threadsAllowedToBlockForConnectionMultiplier;  
    }  
  
    public void setMaxWaitTime(int maxWaitTime) {  
        this.maxWaitTime = maxWaitTime;  
    }  
  
    public void setConnectTimeout(int connectTimeout) {  
        this.connectTimeout = connectTimeout;  
    }  
  
    public void setSocketTimeout(int socketTimeout) {  
        this.socketTimeout = socketTimeout;  
    }  
  
    public String getSource() {  
        return source;  
    }  
  
    public void setSource(String source) {  
        this.source = source;  
    }  

}



maven的jar包:

		<!-- mongodb的驱动 -->
		<dependency>  
            <groupId>org.mongodb</groupId>  
            <artifactId>mongo-java-driver</artifactId>  
            <version>3.2.2</version>  
        </dependency>
		<!-- log -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.13</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.1.3</version>
		</dependency>

logback.xml的配置
	<!-- mongo 日志 -->  
    <appender name="MONGO" class="com.test.logback.MongoDBAppender">  
        <host>127.0.0.1</host>  
        <port>27017</port>
        <dbName>test</dbName>  
        <collectionName>logback</collectionName>  
    </appender>  




"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:D:\IDEA\IntelliJ IDEA 2023.2.8\lib\idea_rt.jar=58609:D:\IDEA\IntelliJ IDEA 2023.2.8\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_191\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar;D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\target\classes;D:\repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.18\spring-boot-starter-data-redis-2.7.18.jar;D:\repository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;D:\repository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;D:\repository\ch\qos\logback\logback-classic\1.2.12\logback-classic-1.2.12.jar;D:\repository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;D:\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;D:\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;D:\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;D:\repository\org\springframework\data\spring-data-redis\2.7.18\spring-data-redis-2.7.18.jar;D:\repository\org\springframework\data\spring-data-keyvalue\2.7.18\spring-data-keyvalue-2.7.18.jar;D:\repository\org\springframework\data\spring-data-commons\2.7.18\spring-data-commons-2.7.18.jar;D:\repository\org\springframework\spring-tx\5.3.31\spring-tx-5.3.31.jar;D:\repository\org\springframework\spring-oxm\5.3.31\spring-oxm-5.3.31.jar;D:\repository\io\lettuce\lettuce-core\6.1.10.RELEASE\lettuce-core-6.1.10.RELEASE.jar;D:\repository\io\netty\netty-common\4.1.101.Final\netty-common-4.1.101.Final.jar;D:\repository\io\netty\netty-handler\4.1.101.Final\netty-handler-4.1.101.Final.jar;D:\repository\io\netty\netty-resolver\4.1.101.Final\netty-resolver-4.1.101.Final.jar;D:\repository\io\netty\netty-buffer\4.1.101.Final\netty-buffer-4.1.101.Final.jar;D:\repository\io\netty\netty-transport-native-unix-common\4.1.101.Final\netty-transport-native-unix-common-4.1.101.Final.jar;D:\repository\io\netty\netty-codec\4.1.101.Final\netty-codec-4.1.101.Final.jar;D:\repository\io\netty\netty-transport\4.1.101.Final\netty-transport-4.1.101.Final.jar;D:\repository\io\projectreactor\reactor-core\3.4.34\reactor-core-3.4.34.jar;D:\repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\repository\org\springframework\boot\spring-boot-starter-cache\2.7.18\spring-boot-starter-cache-2.7.18.jar;D:\repository\org\springframework\spring-context-support\5.3.31\spring-context-support-5.3.31.jar;D:\repository\org\springframework\spring-beans\5.3.31\spring-beans-5.3.31.jar;D:\repository\org\springframework\spring-context\5.3.31\spring-context-5.3.31.jar;D:\repository\org\springframework\boot\spring-boot-starter-web\2.7.18\spring-boot-starter-web-2.7.18.jar;D:\repository\org\springframework\boot\spring-boot-starter-json\2.7.18\spring-boot-starter-json-2.7.18.jar;D:\repository\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;D:\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;D:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;D:\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;D:\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;D:\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;D:\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;D:\repository\org\springframework\spring-web\5.3.31\spring-web-5.3.31.jar;D:\repository\org\springframework\spring-webmvc\5.3.31\spring-webmvc-5.3.31.jar;D:\repository\org\springframework\spring-expression\5.3.31\spring-expression-5.3.31.jar;D:\repository\org\springframework\boot\spring-boot-starter-websocket\2.7.18\spring-boot-starter-websocket-2.7.18.jar;D:\repository\org\springframework\spring-messaging\5.3.31\spring-messaging-5.3.31.jar;D:\repository\org\springframework\spring-websocket\5.3.31\spring-websocket-5.3.31.jar;D:\repository\org\springframework\boot\spring-boot-configuration-processor\2.7.18\spring-boot-configuration-processor-2.7.18.jar;D:\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.0\mybatis-spring-boot-starter-2.2.0.jar;D:\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.0\mybatis-spring-boot-autoconfigure-2.2.0.jar;D:\repository\org\mybatis\mybatis\3.5.7\mybatis-3.5.7.jar;D:\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;D:\repository\org\springframework\boot\spring-boot-starter-security\2.7.18\spring-boot-starter-security-2.7.18.jar;D:\repository\org\springframework\spring-aop\5.3.31\spring-aop-5.3.31.jar;D:\repository\org\springframework\security\spring-security-config\5.7.11\spring-security-config-5.7.11.jar;D:\repository\org\springframework\security\spring-security-web\5.7.11\spring-security-web-5.7.11.jar;D:\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.18\spring-boot-starter-jdbc-2.7.18.jar;D:\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\repository\org\springframework\spring-jdbc\5.3.31\spring-jdbc-5.3.31.jar;D:\repository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar;D:\repository\com\alibaba\druid\1.2.23\druid-1.2.23.jar;D:\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.18\spring-boot-autoconfigure-2.7.18.jar;D:\repository\org\glassfish\jaxb\jaxb-runtime\2.3.9\jaxb-runtime-2.3.9.jar;D:\repository\org\glassfish\jaxb\txw2\2.3.9\txw2-2.3.9.jar;D:\repository\com\sun\istack\istack-commons-runtime\3.0.12\istack-commons-runtime-3.0.12.jar;D:\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;D:\repository\com\mysql\mysql-connector-j\8.2.0\mysql-connector-j-8.2.0.jar;D:\repository\org\postgresql\postgresql\42.5.1\postgresql-42.5.1.jar;D:\repository\org\checkerframework\checker-qual\3.5.0\checker-qual-3.5.0.jar;D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\libs\jdbc-x86\kingbase8-8.6.0.jar;D:\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.4.6\pagehelper-spring-boot-starter-1.4.6.jar;D:\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.4.6\pagehelper-spring-boot-autoconfigure-1.4.6.jar;D:\repository\com\github\pagehelper\pagehelper\5.3.2\pagehelper-5.3.2.jar;D:\repository\com\github\jsqlparser\jsqlparser\4.5\jsqlparser-4.5.jar;D:\repository\org\springdoc\springdoc-openapi-ui\1.6.10\springdoc-openapi-ui-1.6.10.jar;D:\repository\org\springdoc\springdoc-openapi-webmvc-core\1.6.10\springdoc-openapi-webmvc-core-1.6.10.jar;D:\repository\org\webjars\swagger-ui\4.13.2\swagger-ui-4.13.2.jar;D:\repository\org\webjars\webjars-locator-core\0.50\webjars-locator-core-0.50.jar;D:\repository\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;D:\repository\io\github\classgraph\classgraph\4.8.149\classgraph-4.8.149.jar;D:\repository\org\springdoc\springdoc-openapi-security\1.6.10\springdoc-openapi-security-1.6.10.jar;D:\repository\org\springdoc\springdoc-openapi-common\1.6.10\springdoc-openapi-common-1.6.10.jar;D:\repository\io\swagger\core\v3\swagger-core\2.2.2\swagger-core-2.2.2.jar;D:\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.13.5\jackson-dataformat-yaml-2.13.5.jar;D:\repository\io\swagger\core\v3\swagger-annotations\2.2.2\swagger-annotations-2.2.2.jar;D:\repository\io\swagger\core\v3\swagger-models\2.2.2\swagger-models-2.2.2.jar;D:\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\repository\org\springframework\security\spring-security-core\5.7.11\spring-security-core-5.7.11.jar;D:\repository\org\springframework\security\spring-security-crypto\5.7.11\spring-security-crypto-5.7.11.jar;D:\repository\com\github\xiaoymin\knife4j-springdoc-ui\3.0.3\knife4j-springdoc-ui-3.0.3.jar;D:\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\repository\org\springframework\boot\spring-boot-starter-aop\2.7.18\spring-boot-starter-aop-2.7.18.jar;D:\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;D:\repository\javax\sip\jain-sip-ri\1.3.0-91\jain-sip-ri-1.3.0-91.jar;D:\repository\org\slf4j\log4j-over-slf4j\1.7.36\log4j-over-slf4j-1.7.36.jar;D:\repository\org\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;D:\repository\com\alibaba\fastjson2\fastjson2\2.0.57\fastjson2-2.0.57.jar;D:\repository\com\alibaba\fastjson2\fastjson2-extension\2.0.57\fastjson2-extension-2.0.57.jar;D:\repository\com\alibaba\fastjson2\fastjson2-extension-spring5\2.0.57\fastjson2-extension-spring5-2.0.57.jar;D:\repository\com\squareup\okhttp3\okhttp\4.10.0\okhttp-4.10.0.jar;D:\repository\com\squareup\okio\okio-jvm\3.0.0\okio-jvm-3.0.0.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.6.21\kotlin-stdlib-common-1.6.21.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib\1.6.21\kotlin-stdlib-1.6.21.jar;D:\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;D:\repository\com\squareup\okhttp3\logging-interceptor\4.10.0\logging-interceptor-4.10.0.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.6.21\kotlin-stdlib-jdk8-1.6.21.jar;D:\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.6.21\kotlin-stdlib-jdk7-1.6.21.jar;D:\repository\io\github\rburgst\okhttp-digest\2.7\okhttp-digest-2.7.jar;D:\repository\org\bitbucket\b_c\jose4j\0.9.3\jose4j-0.9.3.jar;D:\repository\org\mitre\dsmiley\httpproxy\smiley-http-proxy-servlet\1.12.1\smiley-http-proxy-servlet-1.12.1.jar;D:\repository\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;D:\repository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;D:\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\repository\com\alibaba\easyexcel\3.3.2\easyexcel-3.3.2.jar;D:\repository\com\alibaba\easyexcel-core\3.3.2\easyexcel-core-3.3.2.jar;D:\repository\com\alibaba\easyexcel-support\3.3.2\easyexcel-support-3.3.2.jar;D:\repository\org\apache\poi\poi\4.1.2\poi-4.1.2.jar;D:\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;D:\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;D:\repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;D:\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;D:\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;D:\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;D:\repository\org\apache\commons\commons-csv\1.8\commons-csv-1.8.jar;D:\repository\org\ehcache\ehcache\3.10.8\ehcache-3.10.8.jar;D:\repository\javax\cache\cache-api\1.1.1\cache-api-1.1.1.jar;D:\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;D:\repository\org\apache\commons\commons-compress\1.24.0\commons-compress-1.24.0.jar;D:\repository\com\github\oshi\oshi-core\6.2.2\oshi-core-6.2.2.jar;D:\repository\net\java\dev\jna\jna\5.12.1\jna-5.12.1.jar;D:\repository\net\java\dev\jna\jna-platform\5.12.1\jna-platform-5.12.1.jar;D:\repository\org\springframework\session\spring-session-core\2.7.4\spring-session-core-2.7.4.jar;D:\repository\org\springframework\spring-jcl\5.3.31\spring-jcl-5.3.31.jar;D:\repository\com\google\guava\guava\32.1.3-jre\guava-32.1.3-jre.jar;D:\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\repository\com\google\errorprone\error_prone_annotations\2.21.1\error_prone_annotations-2.21.1.jar;D:\repository\com\google\j2objc\j2objc-annotations\2.8\j2objc-annotations-2.8.jar;D:\repository\org\apache\ftpserver\ftpserver-core\1.2.0\ftpserver-core-1.2.0.jar;D:\repository\org\apache\mina\mina-core\2.1.6\mina-core-2.1.6.jar;D:\repository\org\apache\ftpserver\ftplet-api\1.2.0\ftplet-api-1.2.0.jar;D:\repository\org\projectlombok\lombok\1.18.30\lombok-1.18.30.jar;D:\repository\io\github\sevdokimov\logviewer\log-viewer-spring-boot\1.0.10\log-viewer-spring-boot-1.0.10.jar;D:\repository\org\springframework\boot\spring-boot\2.7.18\spring-boot-2.7.18.jar;D:\repository\io\github\sevdokimov\logviewer\log-viewer\1.0.10\log-viewer-1.0.10.jar;D:\repository\io\github\sevdokimov\logviewer\log-viewer-frontend\1.0.10\log-viewer-frontend-1.0.10.jar;D:\repository\com\google\code\gson\gson\2.9.1\gson-2.9.1.jar;D:\repository\com\github\ben-manes\caffeine\caffeine\2.9.3\caffeine-2.9.3.jar;D:\repository\com\typesafe\config\1.3.3\config-1.3.3.jar;D:\repository\org\mozilla\rhino\1.7.13\rhino-1.7.13.jar;D:\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;D:\repository\org\springframework\spring-core\5.3.31\spring-core-5.3.31.jar" com.genersoft.iot.vmp.VManageBootstrap ___ __ ___ ___ ________ ________ ________ ________ |\ \ |\ \|\ \ / /|\ __ \ |\ __ \|\ __ \|\ __ \ \ \ \ \ \ \ \ \ / / | \ \|\ \ ____________\ \ \|\ \ \ \|\ \ \ \|\ \ \ \ \ __\ \ \ \ \/ / / \ \ ____\\____________\ \ ____\ \ _ _\ \ \\\ \ \ \ \|\__\_\ \ \ / / \ \ \___\|____________|\ \ \___|\ \ \\ \\ \ \\\ \ \ \____________\ \__/ / \ \__\ \ \__\ \ \__\\ _\\ \_______\ \|____________|\|__|/ \|__| \|__| \|__|\|__|\|_______| 2025-08-21 16:01:04.159 [main] INFO --- com.genersoft.iot.vmp.VManageBootstrap: 55 Starting VManageBootstrap using Java 1.8.0_131 on DESKTOP-UF2P6NE with PID 174620 (D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\target\classes started by lenovo in D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master) 2025-08-21 16:01:04.163 [main] INFO --- com.genersoft.iot.vmp.VManageBootstrap: 638 The following 1 profile is active: "274-dev" 2025-08-21 16:01:05.021 [main] INFO --- o.s.context.annotation.ConfigurationClassParser: 471 Properties location [classpath:git.properties] not resolvable: class path resource [git.properties] cannot be opened because it does not exist 2025-08-21 16:01:05.687 [main] INFO --- o.s.d.r.config.RepositoryConfigurationDelegate: 262 Multiple Spring Data modules found, entering strict repository configuration mode 2025-08-21 16:01:05.689 [main] INFO --- o.s.d.r.config.RepositoryConfigurationDelegate: 132 Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-08-21 16:01:05.807 [main] INFO --- o.s.d.r.config.RepositoryConfigurationDelegate: 201 Finished Spring Data repository scanning in 107 ms. Found 0 Redis repository interfaces. 2025-08-21 16:01:06.525 [main] INFO --- o.s.boot.web.embedded.tomcat.TomcatWebServer: 108 Tomcat initialized with port(s): 8080 (http) 2025-08-21 16:01:06.535 [main] INFO --- org.apache.coyote.http11.Http11NioProtocol: 173 Initializing ProtocolHandler ["http-nio-8080"] 2025-08-21 16:01:06.537 [main] INFO --- org.apache.catalina.core.StandardService: 173 Starting service [Tomcat] 2025-08-21 16:01:06.537 [main] INFO --- org.apache.catalina.core.StandardEngine: 173 Starting Servlet engine: [Apache Tomcat/9.0.83] 2025-08-21 16:01:06.797 [main] INFO --- o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]: 173 Initializing Spring embedded WebApplicationContext 2025-08-21 16:01:06.797 [main] INFO --- o.s.b.w.s.c.ServletWebServerApplicationContext: 292 Root WebApplicationContext: initialization completed in 2595 ms 2025-08-21 16:01:07.117 [main] INFO --- c.a.d.s.b.a.DruidDataSourceAutoConfigure: 68 Init DruidDataSource 2025-08-21 16:01:07.235 [main] ERROR --- o.s.boot.web.embedded.tomcat.TomcatStarter: 61 Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'proxyServletConfig': Unsatisfied dependency expressed through field 'mediaServerService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mediaServerServiceImpl': Unsatisfied dependency expressed through field 'mediaServerMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mediaServerMapper' defined in file [D:\ChromeCoreDownloads\wvp-GB28181-pro-master (1)\wvp-GB28181-pro-master\target\classes\com\genersoft\iot\vmp\storager\dao\MediaServerMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/genersoft/iot/vmp/conf/MybatisConfig.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.class]: Invocation of init method failed; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class 2025-08-21 16:01:07.255 [main] INFO --- org.apache.catalina.core.StandardService: 173 Stopping service [Tomcat] 2025-08-21 16:01:07.268 [main] WARN --- org.apache.catalina.loader.WebappClassLoaderBase: 173 The web application [ROOT] appears to have started a thread named [lettuce-timer-3-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Thread.sleep(Native Method) io.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:600) io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:496) io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) java.lang.Thread.run(Thread.java:748) 2025-08-21 16:01:07.269 [main] WARN --- o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext: 599 Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 2025-08-21 16:01:07.287 [main] INFO --- o.s.b.a.l.ConditionEvaluationReportLoggingListener: 136 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2025-08-21 16:01:07.301 [main] ERROR --- o.s.b.diagnostics.LoggingFailureAnalysisReporter: 40 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (the profiles 274-dev are currently active). Process finished with exit code 1 分析错误
最新发布
08-22
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值