1

在开发中打印内容,使用 System.out.println() 和 Log4j 应当是人人皆知的方法了。
其实在开发中我们不建议使用 System.out 因为大量的使用 System.out 会增加资源的消耗。
而Log4j 更为灵活在性能上也相比 System.out 要高,我们可以配置输出级别,可以指定多个日志文件分别记录不同的日志。
使用 System.out 是在当前线程执行的,写入文件也是写入完毕后才继续执行下面的程序。而使用Log工具不但可以控制日志是否输出,怎么输出,它的处理机制也是通知写日志,继续执行后面的代码不必等日志写完。
如非必要,建议大家不要使用控制台输出,因为控制台输出没有优先级会显得输出太乱。

个人推荐使用 SLF4J(Simple Logging Facade For Java)的logback来输出日志,其比log4j 要好,因为他效率更高。

日志配置

方法一(logback.xml)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="cn.wuyang.springboot" level="TRACE" /> <!-- 你的路径和日志级别 -->
</configuration>

方法二(application.properties)

logging.level.org.springframework.web=INFO
logging.level.cn.wuyang.springboot=TRACE

方法三(logback-spring.xml)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <logger name="org.springframework.web" level="INFO"/>
    <logger name="cn.wuyang.springboot" level="TRACE" />

    <springProfile name="dev">
        <logger name="cn.wuyang.springboot" level="DEBUG" />
    </springProfile>

    <springProfile name="staging">
        <logger name="cn.wuyang.springboot" level="INFO" />
    </springProfile>

</configuration>

日志本地落盘和日志格式

ConsoleAppender

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line\)  - %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

RollingFileAppender

<appender name="baselog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>log/base.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/base.log.%d.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 64 MB -->
                <maxFileSize>64 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>
                %d %p (%file:%line\)- %m%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>
logback.xml

其中包含2中方式调用

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--定义 start  -->
    <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line\)  - %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <appender name="baselog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>log/base.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/base.log.%d.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 64 MB -->
                <maxFileSize>64 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>
                %d %p (%file:%line\)- %m%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>

    <!--定义 end  -->

    <!-- 1.默认日志格式并写入文件 -->
     <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="cn.wuyang.springboot" level="TRACE" >
        <appender-ref ref="baselog" />
    </logger>


    <!-- 2.调用日志格式并写入文件 -->
    <!-- <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
    <logger name="cn.wuyang.springboot" level="TRACE" >
        <appender-ref ref="baselog" />
    </logger> -->
</configuration>

文章来源:http://blog.csdn.net/itwuyang...


已注销
249 声望48 粉丝