发表于: 2017-10-01 23:58:20

1 765


一 今天完成的事情:

1任务21查看日志,并转成Debug模式,练习调试,学会查看单步执行时的变量值。


(1)log4j 2

log4j是用来生成日志的一个框架。


导入log4j的core和api的jar包。

src下创建配置文件log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>  

<configuration status="off">  

  <appenders>  

    <Console name="Console" target="SYSTEM_OUT">  

      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>  

    </Console>  

  </appenders>  

  <loggers>  

    <root level="error">  

      <appender-ref ref="Console"/>  

    </root>  

  </loggers>  

</configuration>  


创建测试类Test


import org.apache.logging.log4j.Level;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

public class Test {

    private static Logger logger = LogManager.getLogger(Test.class.getName());

    

    public boolean hello() {

        logger.trace("~~trace!!");

        logger.error("error!!");   

        logger.info("我是info信息");   

        logger.debug("我是debug信息");

        logger.warn("我是warn信息");

        logger.fatal("我是fatal信息");

        logger.log(Level.DEBUG, "我是debug信息");  

        return false;

    }

    public static void main(String[] args) {

  

        Test t = new Test();

        t.hello();

    }  

}  


输出结果:

23:41:35.903 [main] ERROR Test - error!!

23:41:35.904 [main] FATAL Test - 我是fatal信息


如果更改level,则是根据更改的级别输出对应级别包含的信息。

例如,改为trace,则全部输出。

各级别的定义(int):

trace(600): 追踪

debug(500): 调试

info(400): 重要的信息

warn(300): 警告提示

error(200): 错误信息

fatal(100): 致命错误!


(2)抓虫!进入debug模式,单步调试,可以看到各种属性信息

F5进入方法内部

F6跳过方法

F7从方法中跳出

F8执行到断点



二 明天计划的事情:

22 解决本地连接到服务器的问题


三 遇到的问题:

1远程桌面连接失败:你的凭据不工作。。

尝试了百度到的

(1)修改HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control ->Terminal Server -> Wds -> dpwd -> Tds cp

HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> TerminalServer -> WinStations -> RDP-Tcp

(2)gpedit.msc->计算机配置->管理模板->系统->凭据分配->允许分配保存的凭据用于仅NTLM服务器身份验证->选择“已启用”->单击“显示”输入“TERMSRV/*”->运行命令“gpupdate /force”

(3)进入“控制面板”->“凭据管理器”->“添加Windows凭据”->输入Windows2008 Server的ip地址、用户、密码

都不行。。。。

 
四 收获:

1 log4j 2 的基本使用和坑

配置文件名限定使用log4j2.xml,log4j2-test.xml

否则报错:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'log4j2.debug' to show Log4j2 internal initialization logging.

23:30:42.183 [main] ERROR Test - Did it again!

23:30:42.184 [main] FATAL Test - 我是fatal信息

2 标签

1)根元素configuration包含两个子元素:appenders和loggers

2)appenders元素:输出源

Console:

<!--控制台输出信息--> 

<Console name="Console" target="SYSTEM_OUT">

<!--只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> 

<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/> 

<!--输出日志的格式-->

<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>

</Console>


File:

<!--输出到文件中,append=“true”表示续写(默认),false覆盖-->

<File name="log" fileName="log/test.log" append="false">

           <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> 

</File>


RollingFile:

<!-将日志按size大小自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->

       <RollingFile name="RollingFile" fileName="logs/app.log"                     

filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 

<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>            <SizeBasedTriggeringPolicy size="50MB"/> 

</RollingFile>


3)loggers元素:配置类的输出方式,引入appender元素

<!--建立一个默认的root的logger,以Console方式输出,以RollingFile方式写入文件--> 

<root level="trace"> 

<appender-ref ref="RollingFile"/> 

<appender-ref ref="Console"/> 

</root>

<!--Hello类:trace以上输出,additivity=false时,不会再继承root,避免再输出一次--> 

<logger name="cn.lsw.base.log4j2.Hello" level="trace" additivity="false"> 

<appender-ref ref="Console"/>        

</logger>



注意点:loggers ref的是appender的name~~



返回列表 返回列表
评论

    分享到