log4j日志及添加ztree

log4j日志及添加修改ztree

1 log4j日志

1.1 导入log4j.jar包

1.2 编写配置文件

日志一般分5个等级,从低到高分别是DEBUG INFO WARN ERROR FATAL。对应中文的意思就是 调试信息 一般信息 警告信息 错误信息 严重错误信息

了解清楚等级划分之后,再来控制生成环境和开发环境输出的信息不同就很简单了,我可以配置一个最低的日志输出级别,在开发环境我设置为DEBUG,也就是所有的日志信息都能输出。在生产环境我可以设置为WARN,也就是只有WARN及以上级别的日志才会被输出,这样是不是就可以在不同的环境控制不同的日志输出了。

log4j的配置

基本的配置文件

### Console ###
log4j.appender.AA=org.apache.log4j.ConsoleAppender
log4j.appender.AA.Target=System.out
log4j.appender.AA.layout=org.apache.log4j.PatternLayout
log4j.appender.AA.layout.ConversionPattern=%p [%C{1}:%L] %m%n

### File ###
log4j.appender.D=org.apache.log4j.FileAppender
log4j.appender.D.File=E://logs/log.log
log4j.appender.D.Append=true
log4j.appender.D.Threshold=DEBUG
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### root level ###
log4j.rootLogger=debug,AA

### spring level ###
log4j.logger.org.springframework=WARN

### your package level ###
log4j.logger.com.senchen=WARN
### your sub package level ###
log4j.logger.com.senchen.shop=debug

注意,这里有一个日志的格式,也就是 ConversionPattern,那么这个值到底该如何配置呢?


%n - 换行

%m - 日志内容

%p - 日志级别(FATAL,   ERROR,   WARN,   INFO,   DEBUG   or   custom)

%r - 程序启动到现在的毫秒数

%% - percent   sign   in   output

%t - 当前线程名

%d   -  日期和时间,常用的格式有 %d{DATE}, %d{ABSOLUTE}, %d{HH:mm:ss,SSS}, %d{ddMMyyyy HH:mm:ss,SSS}

%l - 同 %F%L%C%M

%F - java源文件名

%L - java源码行数

%C - java类名,%C{1} 输出最后一个元素

%M - java方法名

%n - 换行

Java代码[%d{HH\:mm\:ss\:SSS}][%p] (%c\:%L) - %m%n[%d{HH\:mm\:ss\:SSS}][%p] (%c\:%L) - %m%n输出格式为:[08:58:59:412][INFO] (com.soon.action:35) - 服务器启动

1.3 类中使用

2 添加分类通过ztree

2.1预添加思路:

  • 点击添加分类后,页面要跳转到添加页面那么上级分类是?

  • 这时需要在url上加上当前id的参数,用来回显并把它作为上级id去添加分类

  • 如果没有id就是添加的一级分类,转发到添加页面,这里需要做一个判断

  • 如果id查到的分类为null就显示顶级分类,否则要显示上级分类

  • 并把这个id存到隐藏域中作为添加分类的upid

  • s到这里预添加就结束了

2.2 需要id那么之前的list方法就需要在存一个id

@RequestMapping("/list")
    public String list(@RequestParam(defaultValue="0") int id,Model md){
        System.out.println(this.getClass()+"日志1...根据上级获取下级");
        
        List list = null;
        if( id ==0){
             list = ksvs.getFirstTypes();
        }else{
            list = ksvs.getSubTypes( id );
        }
        md.addAttribute("upid",id);
        md.addAttribute("typeList", list);
        return "/kind/kind_list";
    }//tree

2.3 url请求加上要添加的分类的upid

onclick="location.href='<%=path%>/ctrl/pingtai/kindTree/befAdd.do?id=${upid}'"

2.4 Controller层把查到的分类对象存到request域中

@RequestMapping("/befAdd")
    public String preSave(@RequestParam(defaultValue="0") int id,Model md){
        log.debug("日志1...接收到的上级id:"+id);
        Kind father = ksvs.findById(id);
        log.debug("日志2...上级id获取到的对象:"+father);
        md.addAttribute("upType",father);
        return "/kind/kind_add";
    }

2.5 添加分类到数据库思路

  • 首先表单里有文件类型所以要加上enctype="multipart/form-data"

  • 跳转的地址为action="<%=path%>/ctrl/pingtai/kindTree/add.do"

  • 这里注意对springMVC.xml要加上上传解析器

          
      
            
            
          
    
       
    

  • 响应的方法要把分类对象存入到数据库中

  • 对应的图片存到指定的目录下

  • 重定向到list.do方法并传递这个分类对象的upid过去,以显示该upid下的所有分类列表

2.6 Controller中的添加方法

    @RequestMapping("/add")
    public String save(Kind k,@RequestParam(name="simg",required=false) MultipartFile file,HttpServletRequest req) throws Exception, IOException{
        log.debug("\n日志1...接收到分类名称 : " + k.getKindName()+"\t描述"+k.getKindDesc()+"\t"+k.getUpid()+"\t"+ file);
        if(null!=file&& !file.isEmpty()){
            String directory = req.getSession().getServletContext().getRealPath("")+WebUtils.def_kindImgPath;
            String fileName = directory+file.getOriginalFilename();
            log.debug("日志2...保存分类图片1 : " + fileName);
            file.transferTo( new File(fileName ));
            k.setKindImg(file.getOriginalFilename());
            
        }
        ksvs.save(k);
        return "redirect:/ctrl/pingtai/kindTree/list.do?id="+k.getUpid();
    }

2.7 业务层判断有没有upid

根据这个来调用不同的方法

    /**
     * 保存 分类对象
     * @param k
     */
    public void save(Kind k)throws RuntimeException{
        log.debug("\t日志1..保存  " +(k.getUpid()==0?"顶级":"下级") );
        if( k.getUpid() == 0){
            kmng.save(k);
        }else{
            secMng.saveSecond(k);
        }
    }

2.8 接下来就是从数据库中去添加数据了

添加方法到此就结束了


你可能感兴趣的:(log4j日志及添加ztree)