springboot 集成Log4j2

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:31   516   0
<h3>一、Log4j2的介绍</h3>
<p style="text-indent:33px;">Log4j是Apache下的一开源项目,通过使用Log4j可以将日志信息打印到控制台、文件等。我们也可以控制每一条日志的输出格式,通过定义每一条日志信息的级别能够更加细致地控制日志的生成过程。</p>
<p style="text-indent:33px;">在应用程序中添加日志记录有三个目的:</p>
<p style="text-indent:33px;">1、监视代码中变量的变化,周期性地记录到文件中,供其他应用进行统计分析</p>
<p style="text-indent:33px;">2、跟踪代码运行时的轨迹,作为日后审计的依据</p>
<p style="text-indent:33px;">3、担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息</p>
<p style="text-indent:0;"><strong>Log4j2的三个重要组成部分:</strong></p>
<ol><li>Loggers(记录器):Loggers组件被分为7个级别:all、debug、info、warn、error、fatal、off。这7个级别是有优先级的:all&lt; debug &lt; info &lt; warn &lt; error &lt; fatal &lt; off    Log4J只输出级别不低于设定级别的日志输出</li><li>Appends(输出源):Log4j允许把日志输出到不同的地方,如控制台(Console)、文件(Files)等。</li><li>Layout(布局):Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息</li></ol>
<h3> </h3>
<h3>二、集成Log4j2</h3>
<p style="text-indent:0;">Log4j2支持两种配置方式,xml格式的文件和properties文件。下面我们用xml来配置,xml可以配置更多的功能</p>
<p style="text-indent:0;"><strong>第一步、引入依赖</strong></p>
<pre class="blockcode"><code>      &lt;!--log4j2--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-log4j2&lt;/artifactId&gt;
        &lt;/dependency&gt;</code></pre>
<p style="text-indent:0;"><strong>第二步、springboot默认使用Logback日志框架来记录日志,并用INFO级别输出到控制台,所以我们要先排除它的依赖</strong></p>
<p style="text-indent:0;"><img alt="" height="389" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-6b6d6c23ef61e6c8a95d23d436b2fb6d.png" width="1159"></p>
<pre class="blockcode"><code>&lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;
            &lt;exclusions&gt;
                &lt;exclusion&gt;
                    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                     &lt;artifactId&gt;spring-boot-starter-logging&lt;/artifactId&gt;
                &lt;/exclusion&gt;
            &lt;/exclusions&gt;
        &lt;/dependency&gt;</code></pre>
<p><strong> 第三步、添加Log4j的配置文件</strong></p>
<blockquote>
<p>  <span style="color:#f33b45;"> 1、根节点<code>Configuration</code>有两个属性:<code>status</code>和<code>monitorinterval</code>,有两个子节点:<code>Appenders</code>和<code>Loggers</code>(表明可以定义多个 <code>Appender</code>和<code>Logger</code>):</span></p>
<ul><li><code>status</code>用来指定<code>log4j</code>本身的打印日志的级别。</li><li><code>monitorinterval</code>用于指定<code>log4j</code>自动重新配置的监测间隔时间,单位是s,最小是5s</li></ul>
<p> </p>
<p><span style="color:#f33b45;"><code> 2、Appenders</code>节点,常见的有三种子节点:<code>Console</code>、<code>RollingFile</code>、<code>File</code>:</span></p>
<ul><li><code>Console</code>节点用来定义输出到控制台的<code>Appender</code><br><code> name</code>:指定 Appender 的名字<br>    <code>target</code>:<code>SYSTEM_OUT</code> 或<code>SYSTEM_ERR</code>,一般只设置默认:<code>SYSTEM_OUT</code><br><code>   PatternLayout</code>:输出格式,不设置默认为<code>%m%n</code></li><li><code>File</code>节点用来定义输出到指定位置的文件的<code>Appender</code><br><code>  name</code>:指定<code>Appender</code>的名字<br><code>  fileName</code>:指定输出日志的目的文件带全路径的文件名<br><code>  PatternLayout</code>:输出格式,不设置默认为<code>%m%n</code></li><li><code>RollingFile</code>节点用来定义超过指定大小自动删除旧的创建新的的<code>Appender</code><br><code>name</code>:指定<code>Appender</code>的名字<br><code>fileName</code>:指定输出日志的目的文件带全路径的文件名<br><code>PatternLayout</code>:输出格式,不设置默认为<code>%m%n</code><br><code>filePattern</code>:指定新建日志文件的名称格式<br><code>Policies</code>:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志<br><code>TimeBasedTriggeringPolicy:Policies</code>子节点,基于时间的滚动策略,<code>interval</code>属性用来指定多久滚动一次,默认是<code>1 hour</code>。<code>modulate&#61;true</code>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP