美文网首页
maven 与 日志

maven 与 日志

作者: lmem | 来源:发表于2016-12-23 20:35 被阅读288次
Paste_Image.png

0.日志在配置的过程中可能会出现冲突

1)查找那些出的 冲突
查找原因
System.out.println(ClassLoader.getSystemResource("log4j.properties"));
System.out.println(ClassLoader.getSystemResource("log4j.xml"));


Paste_Image.png

2)排除

            <exclusion>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-nop</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-jdk14</artifactId>
            </exclusion>

1.scope 属性

<scope>test</scope>

  • compile,缺省值,适用于所有阶段,会随着项目一起发布。

  • provided,类似compile,期望JDK、容器或使用者会提供这个依赖。
    如servlet.jar

  • runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段

  • test,只在测试时使用,用于编译和运行测试代码。不会随项目发布
    如junit

  • system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

2.常用命令

mvn  help:system 自动在本用户下创建   ~/.m2/repository
mvn clean compile     清理编译
mvn clean test  清理测试
mvn clean package 清理打包
mvn clean install  清理将打包好的jar存入 本地仓库  注意是本地仓库
mvn archetype:generate 使用Archetype生成项目骨架
mvn clean deploy  根据pom中的配置信息将项目发布到远程仓库中 

3.maven目录结构

src/main/java :正式内容包路径
src/mian/resources :正式的配置文件路径
src/test/java :测试包路径
src/test/resources :测试的配置文件路径
src/main/webapp : war 资源目录
```
####4.优化依赖命令
```
mvn dependency:list   显示所有已经解析的所有依赖
mvn dependency:tree  以目录树的形式展现依赖,  最高层为一层依赖 其次二层依赖 三层依赖....
mvn dependency:analyze  第一部分显示 已经使用但是未显示依赖的的  第二部分显示项目未使用的但是依赖的
```

####5.pom
```
<build>
    <plugins>
        <!-- 设置这个插件的对应Java版本,貌似是为了解决一个历史问题-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId> 
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
        <!-- 如下使用UTF-8 处理资源文件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                 <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>


<!--  配置远程版本仓库  -->
<repositories>
    <!-- 设置远程版本库  直接收发布版本 不接受快照版本-->
    <repository>
        <id>jboss</id>  <!-- 如果是用central 就会覆盖中央仓库 -->
        <name>JBoss Repository</name>
        <url>http://repository.jboss.com/maven2/</url>
        <release>
            <enabled>true</enabled>
            <!-- 如下的2个参数详见p83
            <updatePolicy>daily</updatePolicy>  
            <checksumPolicy>ignore</checksumPolicy>
            -->
        </release>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <layout>default</layout>
    </repository>
</repositories>



<!--  将该项目 发布到远程仓库中 -->
<distributionManagement>
    <repository>
        <id>proj-release</id>   <!--  这里的id是为了 跟setting.xml中的 username  和 userpassword 的id匹配,有的仓库需要权限账户-->    
        <name>Proj Release Repository</name>
        <url>http://192.168.89.130</url>
    </repository>
    <snapshotRepository>
        <id>proj-release</id>
        <name>Proj Release Repository</name>
        <url>http://192.168.89.130</url>
    </snapshotRepository>
</distributionManagement>

</build>
</project>
```
####2.日志级别
```
http://jakarta.apache.org/log4j/docs/api/index.html
static Level DEBUG
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
static Level INFO
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。
static Level WARN
WARN level表明会出现潜在错误的情形。
static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
另外,还有两个可用的特别的日志记录级别:
 (以下描述来自log4j API[http://jakarta.apache.org/log4j/docs/api/index.html
](http://jakarta.apache.org/log4j/docs/api/index.html)):
static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。
```

日志记录器(Logger)的行为是分等级的。如下表所示:
分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。**Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG
**。通过在这里定义的级别,您可以控制到应用程序中相应级别
的日志信息的开关。**比如在这里定义了INFO级别,则应用程
序中所有DEBUG级别的日志信息将不被打印出来,也是说大于
等于的级别的日志才输出。**
####3.slf4j
slf4j全称是:simple logging facade for java,可以理解为简单日记门面。准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,它允许用户在部署最终应用时方便的变更其日志系统。
在系统开发中,统一按照slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。
比如:选择JDK自带的日志系统,则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途无法忍受JDK自带的日志系统了,想换成log4j的日志系统,仅需要用slf4j-log4j12-1.5.10.jar替换slf4j-jdk14-1.5.10.jar即可(当然也需要log4j的jar及配置文件)

```
#对于log4j
<dependency> 
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.22</version>
</dependency>
#JAVA.UTIL.LOGGING
<dependency> 
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-jdk14</artifactId>
  <version>1.7.22</version>
</dependency>

```

![Paste_Image.png](https://img.haomeiwen.com/i2061490/e1996969195bd227.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

网友评论

      本文标题:maven 与 日志

      本文链接:https://www.haomeiwen.com/subject/viukvttx.html