前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >轻量级日志平台

轻量级日志平台

原创
作者头像
用户1599145
修改2024-03-25 10:35:04
990
修改2024-03-25 10:35:04

常用的日志管理平台如efk,elk等都太过臃肿,推荐一个轻量级的日志平台zincsearch

页面如下

zincsearch
zincsearch

java 可以使用com.agidologback-elasticsearch-appender3.0.8 包然后改下logback.xml

logback.xml示例,本示例同时产生本地文件,需根据实际情况自行调整

代码语言:xml
复制
<configuration debug="true">
    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <!--默认配置-->
    <property value="logs/demo" name="log.path"/>
    <!-- 日志输出格式 -->
    <property value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" name="log.pattern"/>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    <appender name="ELASTIC" class="com.agido.logback.elasticsearch.ElasticsearchAppender">
        <url>http://日志平台用户名:日志平台密码@日志平台地址:日志平台端口/es/_bulk</url>
        <!--索引仅接受[a-zA-Z0-9_.-]-->
        <index>demo-%date{yyyy-MM-dd}</index>
        <authentication class="com.agido.logback.elasticsearch.config.BasicAuthentication" /> <!-- optional -->

        <properties>
            <!-- please note that <property> tags are also supported, esProperty was added for logback-1.3 compatibility -->
            <esProperty>
                <name>host</name>
                <value>${HOSTNAME}</value>
                <allowEmpty>false</allowEmpty>
            </esProperty>
            <esProperty>
                <name>severity</name>
                <value>%level</value>
            </esProperty>
            <esProperty>
                <name>thread</name>
                <value>%thread</value>
            </esProperty>
            <esProperty>
                <name>stacktrace</name>
                <value>%ex</value>
            </esProperty>
            <esProperty>
                <name>logger</name>
                <value>%logger</value>
            </esProperty>
        </properties>
        <headers>
            <header>
                <name>Content-Type</name>
                <value>application/json</value>
            </header>
        </headers>
    </appender>

    -<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <file>${log.path}/info.log</file>

    <!-- 循环政策:基于时间创建日志文件 -->



    -<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

    <!-- 日志文件名格式 -->


    <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>

    <!-- 日志最大的历史 60天 -->


    <maxHistory>60</maxHistory>

</rollingPolicy>


    -<encoder>

    <pattern>${log.pattern}</pattern>

</encoder>


    -<filter class="ch.qos.logback.classic.filter.LevelFilter">

    <!-- 过滤的级别 -->


    <level>INFO</level>

    <!-- 匹配时的操作:接收(记录) -->


    <onMatch>ACCEPT</onMatch>

    <!-- 不匹配时的操作:拒绝(不记录) -->


    <onMismatch>DENY</onMismatch>

</filter>

</appender>


    -<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <file>${log.path}/error.log</file>

    <!-- 循环政策:基于时间创建日志文件 -->



    -<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

    <!-- 日志文件名格式 -->


    <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>

    <!-- 日志最大的历史 60天 -->


    <maxHistory>60</maxHistory>

</rollingPolicy>


    -<encoder>

    <pattern>${log.pattern}</pattern>

</encoder>


    -<filter class="ch.qos.logback.classic.filter.LevelFilter">

    <!-- 过滤的级别 -->


    <level>ERROR</level>

    <!-- 匹配时的操作:接收(记录) -->


    <onMatch>ACCEPT</onMatch>

    <!-- 不匹配时的操作:拒绝(不记录) -->


    <onMismatch>DENY</onMismatch>

</filter>

</appender>
    <root level="info">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="ELASTIC" />
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_error"/>
    </root>

    <logger name="es-error-logger" level="INFO" additivity="false">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="ELASTIC" />
    </logger>

    <logger name="es-logger" level="INFO" additivity="false">
        <appender name="ES_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- ... -->
            <encoder>
                <pattern>%msg</pattern>
            </encoder>
        </appender>
    </logger>

    <springProfile name="eslog">
        <root level="info">
            <appender-ref ref="ELASTIC"/>
            <appender-ref ref="CONSOLE"/>
        </root>
    </springProfile>

</configuration>

这样就可以将日志实时接入到日志平台了,其他语言可以看官网文档或者查找es库来对接。

另外也可以修改源码加入实时报警机制,检测到关键词如"Error"发送到群机器人或者其他通知平台

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档