用戶行爲數據採集 第1節 日誌生成代碼編寫

1、創建Maven工程

  1. 創建log-collector
    在這裏插入圖片描述
    在這裏插入圖片描述
    工程創建ok,如圖所示:
    在這裏插入圖片描述
log-collector模塊代碼編寫
  1. 在pom.xml文件中添加如下內容
 <!--版本號統一-->
    <properties>
        <slf4j.version>1.7.20</slf4j.version>
        <logback.version>1.0.7</logback.version>
    </properties>

    <dependencies>
        <!--阿里巴巴開源json解析框架-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.51</version>
        </dependency>

        <!--日誌生成框架-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
    </dependencies>

    <!--編譯打包插件-->
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin </artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.study.appclient.AppMain</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

注意:com.study.appclient.AppMain要和自己建的全類名一致

  1. 創建一個包名:com.study.appclient,並在包名下,創建一個類:AppMain
    在這裏插入圖片描述
  2. 創建bean實體類
    在這裏插入圖片描述
  3. 主程序類AppMain
    在這裏插入圖片描述
  4. 最終啓動主程序類AppMain,控制檯打印日誌信息
    在這裏插入圖片描述
  5. 具體代碼,點擊即可下載:
    第 1 節 數據採集–日誌生成代碼
    在這裏插入圖片描述

2、logback日誌打印控制

(1)配置日誌打印Logback
Logback主要用於在磁盤和控制檯打印日誌。
Logback具體使用:

  1. 在resources文件夾下創建logback.xml文件。
  2. 在logback.xml文件中填寫如下配置
    在這裏插入圖片描述
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
   <!--定義日誌文件的存儲地址 勿在 LogBack 的配置中使用相對路徑 -->
   <property name="LOG_HOME" value="/tmp/logs/" />

   <!-- 控制檯輸出 -->
   <appender name="STDOUT"
      class="ch.qos.logback.core.ConsoleAppender">
      <encoder
         class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
         <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符 -->
         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
      </encoder>
   </appender>
   
   <!-- 按照每天生成日誌文件。存儲事件日誌 -->
   <appender name="FILE"
      class="ch.qos.logback.core.rolling.RollingFileAppender">
      <!-- <File>${LOG_HOME}/app.log</File>設置日誌不超過${log.max.size}時的保存路徑,注意,如果是web項目會保存到Tomcat的bin目錄 下 -->  
      <rollingPolicy
         class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
         <!--日誌文件輸出的文件名 -->
         <FileNamePattern>${LOG_HOME}/app-%d{yyyy-MM-dd}.log</FileNamePattern>
         <!--日誌文件保留天數 -->
         <MaxHistory>30</MaxHistory>
      </rollingPolicy>
      <encoder
         class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
         <pattern>%msg%n</pattern>
      </encoder>
      <!--日誌文件最大的大小 -->
      <triggeringPolicy
         class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
      </triggeringPolicy>
   </appender>

    <!--異步打印日誌-->
    <appender name ="ASYNC_FILE" class= "ch.qos.logback.classic.AsyncAppender">
        <!-- 不丟失日誌.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日誌 -->
        <discardingThreshold >0</discardingThreshold>
        <!-- 更改默認的隊列的深度,該值會影響性能.默認值爲256 -->
        <queueSize>512</queueSize>
        <!-- 添加附加的appender,最多隻能添加一個 -->
        <appender-ref ref = "FILE"/>
    </appender>

    <!-- 日誌輸出級別 -->
   <root level="INFO">
      <appender-ref ref="STDOUT" />
      <appender-ref ref="ASYNC_FILE" />
      <appender-ref ref="error" />
   </root>
</configuration>

3、打包

1)採用Maven對程序打包
在這裏插入圖片描述
在這裏插入圖片描述
2)採用帶依賴的jar包。包含了程序運行需要的所有依賴
在這裏插入圖片描述
3)後續日誌生成過程,在安裝完Hadoop和Zookeeper之後執行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章