美文网首页
商铺开发知识点

商铺开发知识点

作者: zackxizi | 来源:发表于2019-11-14 07:50 被阅读0次
  • 设置tomcat 默认访问页面
    在WEB-INF/web.xml配置
 <!--设置默认访问路径-->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  • 在创建区域实体类的时候为什么全部都使用引用类型?
    原因在于,int基本类型,在创建的时候,会默认设置为0,这个是不合理的,所以使用的是引用类型

  • mysql存储中文,url书写方式
    jdbc.url=jdbc:mysql:///o2o?useUnicode=true&characterEncoding=utf8

  • Logback日志管理

    • 一、主要模块
    1. logback-access
      与Servlet荣威集成,通过HTTP访问日志功能
    2. logback-classic
      log4j 改良版本
      logback-core
      为前两个模块提供基本功能
  • 二、主要标签

    1. logger
      存放日志对象,定义日志的类型还有级别等
    2. appender
      用于指定日志输出的目的地,目的地可以是文件、控制台,远程套接服务器等
    3. layout
      格式化日志信息的输出的
  • 三、加载logback配置文件顺序

    1. logback configurationFile这个属性,使用这个属性的地址找相关的配置文件
      比如:java -Dlogback.configurationFile=xxxxx/xxx.xml
    2. classpath里面的logback.groovy文件
    3. calsspath里面logback-text.xml
    4. classpath里面 logback.xml
    5. jdk1.6版本以上,调用serviceLoader 查找类叫com.qos.logback.classic.Configurator这个接口的第一个实现类
    6. ch.qos.logback.classic.BasicCOnfigurator 在控制台直接输出日志
  • logback.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<!--
1. scan,默认值为true,配置文件发生改变,将重新加载配置
2. scanPeriod,设置检测配置文件是否有修改时间的时间间隔,默认时间为毫秒 。每个N时间扫描配置文件,如有变化,重新加载配置,省的配置文件修改之后重新启动服务器了
3. debug, 值设置为true,打印logback内部信息,实时查看logback运行状态,这里就不需要使用了,logback已经很稳定了,不需要这些信息干扰我们的业务日志的信息
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--定义参数常亮-->
    <!--
    日志级别: TRACE < DEBUG < INFO < WARN < ERROR
            这里日志的是debug,说明只记录debug级别以上的记录  有这几个记录 DEBUG 、 INFO 、 WARN 、 ERROR 记录
    -->
    <property name="log.level" value="DEBUG"/>
    <!--最大日志历史保留时间 设置为保存30天-->
    <property name="log.maxHistory" value="30"/>
    <!--日志存储的根路径    catalina.base 存储的是 tomcat 根目录-->
    <property name="log.filePath" value="${catalina.base}/logs/webapps"/>
    <!--日志展示格式
    %d{yyyy-MM-dd HH:mm:ss.SSS}:时间格式
    [%thread]: 输出那个线程执行的
    %-5level: 缩进5个单位之后输出哪个级别的日志
    %logger(50): 输入package里面哪个类输出的信息
    %msg: 表示信息
    %n: 换行符
    -->
    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread] %-5level %logger(50) - %msg%n"/>
    <!--输入介质,输入的地点,控制台设置-->
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <!--将event事件转换成数组,将转换后的字节输入到文件中去,言外之意,就是将转换成字符串,也输出到相应的文件中-->
        <encoder>
            <!--按照上面定义好的日志格式输入-->
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
    <!--DEBUG-->
    <!--文件随着size的增大会滚动出新的日志文件,或者随着时间推移按天或者按月生成新的日志文件-->
    <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--文件路径,log.filePath上面配置的日志存储的根路径-->
        <file>${log.filePath}/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名称-->
            <fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!--最大保存历史数量-->
            <maxHistory>${log.maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <!--按照上面定义好的日志格式输入-->
            <pattern>${log.pattern}</pattern>
        </encoder>
        <!--过滤掉不是debug level日志,值记录 debug level日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <!--只记录debug level 的日志-->
            <onMatch>ACCEPT</onMatch>
            <!--将不是debug level 的日志给过滤掉-->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>


    <!--INFO-->
    <!--文件随着size的增大会滚动出新的日志文件,或者随着时间推移按天或者按月生成新的日志文件-->
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--文件路径,log.filePath上面配置的日志存储的根路径-->
        <file>${log.filePath}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名称-->
            <fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!--最大保存历史数量-->
            <maxHistory>${log.maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <!--按照上面定义好的日志格式输入-->
            <pattern>${log.pattern}</pattern>
        </encoder>
        <!--过滤掉不是info level日志,值记录 info level日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <!--只记录info level 的日志-->
            <onMatch>ACCEPT</onMatch>
            <!--将不是info level 的日志给过滤掉-->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>


    <!--ERROR-->
    <!--文件随着size的增大会滚动出新的日志文件,或者随着时间推移按天或者按月生成新的日志文件-->
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--文件路径,log.filePath上面配置的日志存储的根路径-->
        <File>${log.filePath}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件名称-->
            <fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!--最大保存历史数量-->
            <maxHistory>${log.maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <!--按照上面定义好的日志格式输入-->
            <pattern>${log.pattern}</pattern>
        </encoder>
        <!--过滤掉不是error level日志,值记录 error level日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <!--只记录error level 的日志-->
            <onMatch>ACCEPT</onMatch>
            <!--将不是error level 的日志给过滤掉-->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--存放日志对象,关注那个package下的信息 log.level这里日志的是debug,说明只记录debug级别以上的记录-->
    <!--additivity 继承下面root-->
    <logger name="com.xizi" level="${log.level}" additivity="true">
        <!--向这三个文件输出信息-->
        <appender-ref ref="debugAppender"/>
        <appender-ref ref="infoAppender"/>
        <appender-ref ref="errorAppender"/>
    </logger>
    <root level="info">
        <appender-ref ref="consoleAppender"/>
    </root>
</configuration>

相关文章

  • 商铺开发知识点

    设置tomcat 默认访问页面在WEB-INF/web.xml配置 在创建区域实体类的时候为什么全部都使用引用类型...

  • 测试开发知识点(三)

    传送门 测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) 自动...

  • 测试开发知识点(一)

    传送门 测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) 软件...

  • 测试开发知识点(二)

    传送门 测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) We...

  • 面试被问到的问题

    传送门测试开发知识点(一)测试开发知识点(二)测试开发知识点(三)测试开发知识点(四)测试开发知识点(五) 1、请...

  • 纯租赁模式

    社区商铺租给谁、怎么租对于社区商业规划尤为重要。无论是商业中心的商铺还是社区的商铺,对位置优越的商铺,开发商如果看...

  • 商铺投资彻底凉凉!“一铺养三代”沦落为“一铺坑三代”!

    在几年前的房地产投资中,商铺一直饱受人们的爱戴与追捧,一个开发商开发了一个新楼盘最不愁卖的就是商铺。哪怕这个商铺的...

  • 济南鹊华天禧广场商铺没想到能优惠这么多!买贵了

    济南鹊华天禧广场商铺没想到能优惠这么多!买贵了! 天禧广场商铺 济南天禧广场商铺项目由山东佰邦置业有限公司开发,山...

  • 关于商铺

    商铺的关键因素是在: 能否租出去,以及是否好租 开发商返租的意义也不大 注:商场里的商铺不要买 期房:(要慎重) ...

  • 商铺开发遇到的bug

    ERROR org.springframework.web.servlet.DispatcherServlet -...

网友评论

      本文标题:商铺开发知识点

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