项目中日志系统封装

Java Logger Logging 封装 Java日志实现。对java.util.logging.Logger的封装,在前人(原文件来自网络)的类上完善了文件的控制,使得日志文件可以重入。 立即下载

常规日志实体类

package com.cloud.day3;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

/**

 * 正常日志记录实体类

 * 使用注解的方式和数据库的表关联起来

 */

@Entity

@Table(name="systemlog")

public class SystemLog {

   private String logId;

   private String modelName;

   private String codeEvent;

   private String userID;

   private String systemType;

   private String remark;

   private String date;

   public SystemLog(){}

   public SystemLog(String logId, String modelName, String codeEvent,

         String userID, String systemType, String remark) {

      this.logId = logId;

      this.modelName = modelName;

      this.codeEvent = codeEvent;

      this.userID = userID;

      this.systemType = systemType;

      this.remark = remark;

   }

   /*策略生成器*/

   @GenericGenerator(name="generator",strategy="uuid.hex")

   @GeneratedValue(generator="generator")

   @Id

   @Column(name="log_id",unique=true,nullable=false,length=32)

   public String getLogId() {

      return logId;

   }

   public void setLogId(String logId) {

      this.logId = logId;

   }

   @Column(name="model_name",length=100)

   public String getModelName() {

      return modelName;

   }

   public void setModelName(String modelName) {

      this.modelName = modelName;

   }

   @Column(name="code_event",length=50)

   public String getCodeEvent() {

      return codeEvent;

   }

   public void setCodeEvent(String codeEvent) {

      this.codeEvent = codeEvent;

   }

   @Column(name="user_id",length=32)

   public String getUserID() {

      return userID;

   }

   public void setUserID(String userID) {

      this.userID = userID;

   }

   @Column(name="system_type",length=20)

   public String getSystemType() {

      return systemType;

   }

   public void setSystemType(String systemType) {

      this.systemType = systemType;

   }

   @Column(name="remark",length=200)

   public String getRemark() {

      return remark;

   }

   public void setRemark(String remark) {

      this.remark = remark;

   }

   @Column(name="date",length=20)

   public String getDate() {

      return date;

   }

   public void setDate(String date) {

      this.date = date;

   }

}

异常日志实体类

package com.cloud.day3;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

/**

 * 异常日志记录实体类

 * 使用注解的方式和数据库的表关联起来

 */

@Entity

@Table(name="exceptionlog")

public class ExceptionLog {

   private String logId;

   private String className;

   private String methodName;

   private String exceptionName;

   private String desException;

   private String remark;

   public ExceptionLog(){}

   public ExceptionLog(String className, String methodName,

         String exceptionName, String desException, String remark) {

      this.className = className;

      this.methodName = methodName;

      this.exceptionName = exceptionName;

      this.desException = desException;

      this.remark = remark;

   }

   @GenericGenerator(name="generator",strategy="uuid.hex")

   @GeneratedValue(generator="generator")

   @Id

   @Column(name="log_id",unique=true,nullable=false,length=32)

   public String getLogId() {

      return logId;

   }

   public void setLogId(String logId) {

      this.logId = logId;

   }

   @Column(name="class_name",length=20)

   public String getClassName() {

      return className;

   }

   public void setClassName(String className) {

      this.className = className;

   }

   @Column(name="method_name",length=20)

   public String getMethodName() {

      return methodName;

   }

   public void setMethodName(String methodName) {

      this.methodName = methodName;

   }

   @Column(name="exception_name",length=20)

   public String getExceptionName() {

      return exceptionName;

   }

   public void setExceptionName(String exceptionName) {

      this.exceptionName = exceptionName;

   }

   @Column(name="des_exception",length=1000)

   public String getDesException() {

      return desException;

   }

   public void setDesException(String desException) {

      this.desException = desException;

   }

   @Column(name="remark",length=200)

   public String getRemark() {

      return remark;

   }

   public void setRemark(String remark) {

      this.remark = remark;

   }

}

封装数据库连接

package com.cloud.day2;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.orm.hibernate3.HibernateTemplate;

public class BaseJdbcSupport {

   private HibernateTemplate hibernateTemplate;

   private JdbcTemplate jdbcTemplate;

   public HibernateTemplate getHibernateTemplate() {

      return hibernateTemplate;

   }

   public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {

      this.hibernateTemplate = hibernateTemplate;

   }

   public JdbcTemplate getJdbcTemplate() {

      return jdbcTemplate;

   }

   public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {

      this.jdbcTemplate = jdbcTemplate;

   }

}

日志接口

package com.cloud.day3;

public interface LogServiceInte {

   /**

    * 处理正常情况下的日志记录

    * @param modelName 模块名称:商品模块,用户模块,等等

    * @param codeEvent 事件名称:查询,删除,添加,等等

    * @param date 处理时间

    * @param userID 操作的用户

    * @param systemType 操作系统:APP,接口,web端

    */

   public void saveLog(String modelName,String codeEvent,String date,String userID,String systemType);

   /**

    * 发生异常的情况下的日志记录

    * @param className 类名

    * @param methodName 方法名

    * @param exceptionName 异常名

    * @param desException 异常描述

    * @param remark 备注

    */

   public void saveException(String className,String methodName,String exceptionName,String desException,String remark);

}

日志接口实现类

package com.cloud.day3;

import java.text.SimpleDateFormat;

import com.cloud.day2.BaseJdbcSupport;

public class LogServiceImpl extends BaseJdbcSupport implements LogServiceInte{

   /**

    * 保存正常情况下的日志记录

    * calss:SystemLog

    */

   @Override

   public void saveLog(String modelName, String codeEvent, String date,

         String userID, String systemType) {

      try{

         SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

         SystemLog systemLog = new SystemLog();

         systemLog.setModelName(modelName);

         systemLog.setDate(time.parse(date).toString());

         systemLog.setUserID(userID);

         systemLog.setSystemType(systemType);

         this.getHibernateTemplate().save(systemLog);

      } catch(Exception e){

         e.printStackTrace();

      }

   }

   /**

    * 保存异常情况下日志记录

    * class:ExceptionLog

    */

   @Override

   public void saveException(String className, String methodName,

         String exceptionName, String desException, String remark) {

      try{

         /**

          * 如果异常的描述过长,则截取部分

          */

         if(desException!=null&&desException.length()>1000){

            desException = desException.substring(0, 1000);

         }

         ExceptionLog exceptionLog = new ExceptionLog(className, methodName, exceptionName, desException, remark);

         this.getHibernateTemplate().save(exceptionLog);

      } catch(Exception e){

         e.printStackTrace();

      }

   }

}

java日志记录工具类 调用方法:IndexDataLog.print(入参),可以设置文件大小,文件写满以后自动创建新的日志文件。一般用来记录用户的搜索词,或操作记录。目前以json格式保存日志,入参稍作修改,可以传入对象,linux和windows都支持。 立即下载

相关推荐

日志工具类-java实现

开发项目经常需要日志模块打印输出,因此封装一个日志内,供自己平时使用,有些模块重复书写浪费时间,所以直接拉下来能快速一点。

简易Java日志(Log)输出工具的封装

平时 Java 项目的开发通常需要统一管理日志(Log)的输出,例如控制日志信息输送的目的地(控制台、文件等),控制每一条日志的输出格式,把日志分为不同的级别等。常用的比较成熟的 Java 日志管理工具有 Apache 的 Log4j 等。但有时我们平时一时兴趣想写个小Dmeo或小工具,想较好的控制日志的输出,引入专业的日志管理库又显得比较繁琐,下面我就自己封装一个简单的日志工具类(LogUtils.java)。

谢TS的博客 1万+

NeRF必读:Mip-NeRF总结与公式推导

由于远景近景的分辨率不同,导致经典NeRF对于多尺度场景的表达存在明显瑕疵:NeRF对于近景的重建比较模糊而对于远景的重建出现锯齿。简单粗暴的策略是supersampling,但是费时费力。相较于NeRF使用的位置编码(PE)方式,Mip-NeRF提出了积分位置编码的方式(IPE).这种编码方式可以多尺度地描述空间中的信息分布,make sense.

i_head_no_back的博客 6077

logging日志的封装

logging是软件运行过程中跟踪一些时间发生的一种手段,软件开发会在软件的一些特定时间发生后在代码中添加log,此时会调用logging。日志里面对这个事件信息进行描述,可以包含一些变量数据,具体信息由自己定义。这些事件也存在一定的严重程度,这些也是由开发者赋给事件的严重性,即会有一个时间的Level表示不同严重级别的事件。.........

Leoon123的博客 752

【一键搞定】ThinkPHP6.0.2+PHPStudy+Composer极速安装指南——附完整下载包与避坑技巧

本文提供了一份ThinkPHP6.0.2的完整下载包,并详细介绍了如何配合PHPStudy和Composer进行极速安装与配置。指南涵盖了环境准备、Composer国内镜像加速、项目部署及常见避坑技巧,旨在帮助开发者,尤其是内网或网络不佳的用户,快速搭建可运行的TP6开发环境,绕过依赖下载的繁琐步骤。

assembly8low的博客 1006

[Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下

本文记述了笔者设计并实现以±12V供电电压输出1KHZ~10KHZ频率连续可调的方波、三角波和正弦波的过程。其中,方波输出电压峰峰值为12V(误差<20%),占空比可调、三角波输出电压峰峰值为8V(±20%),正弦波输出电压峰峰值≥1V。

lgc0208的博客 4万+

java log 封装_工具类之LogUtils

安卓开发离不开记录log日志,封装了一份简单的日志工具类,具有设置日志总开关,是否写入文件,日志过滤器和自定义标签,锁定打印log的类、函数名及行号,初始化有可以使用init函数也可以使用建造者模式,具体使用参看单元测试。站点init : 初始化函数getBuilder: 获取LogUtils建造者v : Verbose日志d : Debug日志i ...

weixin_42515120的博客 1136

【库卡机器人】接线步骤

准备X11插头接线,X11插头可以接入机器人外部安全回路接线,其中外部使能信号线也接在此接口上,如果机器人系统没有配置外部使能装置,那个此接口上的外部使能信号端须短接,短接规则为:20-21、23-22、31-30、33-32。持续按住使能键,保持使能上电状态,分别按住示教器右侧每个轴对应的+或-按键,测试机器人每一个轴是否能正常运行,如果一切正常,说明机器人控制正常,机器人可以正常使用。将一根黄绿色等电位线接入其中的一个接地端,并与机器人的接地端相连,使得控制柜与机器人等电位。

qq_45161762的博客 9440

Java控制台日志打印封装

平时为了方便测试和定位错误(特别是demo工具时),又不想依赖日志框架,习惯使用System.out.println(),但这种知识简单输出文本,而且打印异常时不好定位,对打印不同级别的日志也不能满足需求。本文对System.out.println()进行简单封装,轻量级调用。 以前是这样调用: 现在引入后这样调用: ...

Kelly 1302

4 轴穿越机 Mark5 机架全解析:从历史演进到电机桨叶选型指南

本文围绕 4 轴穿越机 Mark5 机架展开,先介绍其发展历程(2018 年初代到 2023 年五代,迭代优化轻量化、刚性与兼容性),再明确其核心参数(轴距 220mm、兼容 4-6 寸桨等)对电机桨叶的约束。 详解电机(KV 值、尺寸、推力等)与桨叶(尺寸、螺距、材质等)选型要点及匹配原则(高 KV 配小桨、低 KV 配大桨),给出推重比、功率等理论计算公式,结合新手练习、花飞、竞速、航拍等场景提供具体选型案例,最后提及安全、成本、法规等注意事项,为爱好者提供全面选型参考。

bother3000的博客 1900

nRF52832——大量数据传输时导致蓝牙断开连接,且无法被搜索到的解决方案(广播参数的设置、程序设计方法)

有时蓝牙通信单次发送数据量较大,且连续发送多次的时候,你会发现蓝牙就会出现异常,可能运行30min,40min,或者1h后,蓝牙就不能传输数据了,且无法被搜索到,用主机扫描蓝牙时可能会提示类似这样的DEBUG信息:bta_gattc_mark_bg_conn unable to find the bg connection mask for bd_addr=xx:xx:xx:xx:xx:xx。

数字世界 万物互联 2004

java:反射封装Slf4j日志工具类

使用Slf4j时,针对日志打印进行工具类封装使用(java反射封装日志工具类)。

a232884c的博客 1601

从源码编译CesiumForUnreal

从源码编译CesiumForUnreal插件

专注GIS开发 5643

Qt项目实战:用spdlog打造高性能日志系统(附完整封装类代码)

本文详细介绍了如何在Qt项目中集成spdlog高性能日志库,构建线程安全的日志系统。通过完整的封装类代码和实战示例,展示了spdlog的核心优势、Qt集成方案、性能优化技巧以及生产环境最佳实践,帮助开发者提升应用的可维护性和稳定性。

h6j7k8l9p0的博客 69

FreeRTOS全攻略:从入门到精通

本文聚焦 FreeRTOS,从基础概念出发,阐述其开源、轻量级等优势。着重介绍 FreeRTOS 入门知识,涵盖内存管理、任务操作、同步互斥机制等核心内容。其中,空闲任务与钩子函数保障系统基础运行与功能扩展;队列、信号量、互斥锁和事件组等机制,分别从数据传递、资源访问控制、优先级问题解决及多任务同步等方面,为开发者提供高效的任务间协作与资源管理方案,助力开发者掌握 FreeRTOS 核心技术,为嵌入式项目开发筑牢基础。

邓邓子的博客 6357

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

简单的日志系统搭建

使用 C++ 实现一个简单的日志系统,部分参考 sylar

记录个人学习、笔记 774

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

日志系统项目实现

日志项目实现:支持同步异步日志器:支持多种标准输出,文件,滚动文件等落地方式,支持文件方式拓展

m0_62792369的博客 972

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Qt Log4Qt 日志系统封装用法

Qt Log4Qt 日志系统封装用法 【下载地址】QtLog4Qt日志系统封装用法 此项目为Qt开发者提供了一个高效的日志系统封装——log4Qt,帮助开发者轻松管理应用程序的日志记录。log4Qt具备灵活的日志级别控制、多样化的日志输出目标(如控制台、文件等)以及可定制的日志格式功能。资源文件详细讲解了如何配置log4...

gitblog_06726的博客 342

C++服务器框架02_日志系统02_logger

C++服务器框架02_日志系统02_logger

呵呵哒!的博客 819

QtLog4Qt日志系统封装用法:优化Qt应用日志管理

QtLog4Qt日志系统封装用法:优化Qt应用日志管理 【下载地址】QtLog4Qt日志系统封装用法 此项目为Qt开发者提供了一个高效的日志系统封装——log4Qt,帮助开发者轻松管理应用程序的日志记录。log4Qt具备灵活的日志级别控制、多样化的日志输出目标(如控制台、文件等)以及可定制的日志格式功能。资源文件详细讲解...

gitblog_06764的博客 884

Qt三方库开发技术:log4Qt介绍、编译和使用

原博主博客地址:https://blog.youkuaiyun.com/qq21497936 本文章博客地址:https://blog.youkuaiyun.com/qq21497936/article/details/89155318 目录 前话 Log4Qt介绍 Qt4版本的log4qt 源码下载 模块化 源码加入日志模块: 将log4qt的源码包含到模块中: 封装日志类 Log.h Log.c...

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 5万+

03.Fabric源码解析---日志系统

Fabric源码解析3——日志系统 这里所说的日志,是指程序运行过程中打印到终端或日志文件,记录程序运行过程的日志,而非涉及到fabric记录交易数据,账本数据一类的交易日志。其实日志系统机制对于源码研究可以忽略,且相对简单,但是一方面日志系统对于程序运行和调试必不可少,fabric如何形成这个日志系统可以学习学习,日志所打印的内容对阅读源码也是一种提示;另一方面不弄清楚这个日志,在阅读源码的过程...

boss2967的博客 1416

C++高性能服务器框架 - sylar

C++高性能服务器框架 - sylarsylar视频教程地址开发环境项目路径日志系统配置系统日志系统整合配置系统协程库封装socket函数库http协议开发分布协议推荐系统其他信息 sylar 视频教程地址 C++服务器框架01_日志系统01 C++服务器框架02_日志系统02_logger C++服务器框架03_日志系统03_appender C++服务器框架04_日志系统04_formatt...

sylar的专栏 1万+

C++项目实战——基于多设计模式下的同步&异步日志系统-⑥-日志等级类与日志消息类设计

C++项目实战——基于多设计模式下的同步&异步日志系统-⑥-日志等级类与日志消息类设计

花想云的博客 897

fabirc1.0商业正式版本源码解析3——日志系统

这里所说的日志,是指程序运行过程中打印到终端或日志文件,记录程序运行过程的日志,而非涉及到fabric记录交易数据,账本数据一类的交易日志。其实日志系统机制对于源码研究可以忽略,且相对简单,但是一方面日志系统对于程序运行和调试必不可少,fabric如何形成这个日志系统可以学习学习,日志所打印的内容对阅读源码也是一种提示;另一方面不弄清楚这个日志,在阅读源码的过程中这些到处出现的打印日志总像围绕在源

u011386109的博客 918

基于 TCP 协议的 C++ 计算器项目实现:从网络通信到协议封装

本文介绍了一个基于C++的TCP计算器项目,通过模块化设计解决网络编程中的核心问题。项目包含五大模块:日志系统(支持多级别日志输出)、网络通信(封装Socket API)、自定义协议(处理TCP粘包/拆包)、业务逻辑(实现计算器功能)和服务端框架(多进程处理)。项目支持加减乘除取模运算,包含完善的错误处理机制,并提供了JSON和自定义两种序列化方式。文章详细解析了各模块的设计思路和关键代码,展示了服务端和客户端的实现方式,最后提出了线程池优化、Protobuf替代等改进方向。该案例完整呈现了C++网络编程的

zrt123456i的博客 1957
上一篇: Log4j使用详解
下一篇: 系统中数据库操作封装
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值