SSH项目中,日志如何实现,日志信息存储在何处?谢谢

供稿:hz-xin.com     日期:2024-05-21
用log4j
log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE
log4j.addivity.org.apache=true

# 应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 用于数据库
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@192.168.0.103:1521:ORCL
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=Nation
log4j.appender.DATABASE.password=1
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
# INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
# 写入数据库中的表LOG4J的Message字段中,内容%d(日期)%c: 日志信息所在地(类名)%p: 日志信息级别%m: 产生的日志具体信息 %n: 输出日志信息换行
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 每天新建日志
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=C:/log4j/log
log4j.appender.A1.Encoding=GBK
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n

#应用于文件
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:/log4j/file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=GBK
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 应用于文件回滚
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.CONSOLE_FILE.Encoding=GBK
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#自定义Appender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = yyflyons@163.com
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#应用于socket
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
# Log Factor 5 Appender
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

# 发送日志给邮件
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=yyflyons@163.com
log4j.appender.MAIL.SMTPHost=www.wusetu.com
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=yyflyons@126.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

运行日志现在基本都用Log4j
操作日志可以记到数据库中
注意定期清理日志

分布式日志方案
答:项目用的日志组件是logback(slf4j的实现),引入logstash-logback-encoder实现输出JSON格式的日志 把logback的配置里的encoder替换为 成功的输出JSON格式的日志文件 运维同学搭好ELK环境,把日志导入到elasticsearch中,可以愉快的使用Kibana来查看日志了。这时问题又来了,如何查看一次请求的日志,这样可以很好...

如何实现日志的集中化存储以及使用loganalyzer做日志分析
答:日志记录的是,我们操作系统或某个服务或某个软件在运行过程当中所产生事件信息的,这对于我们后续分析系统比较有价值。比如,某个服务在运行过程中出现故障了,就可以查看该服务的日志信息,分析日志找出服务出现故障的原因所在。如:我们使用【yum】工具安装软件,系统都会把程序yum做的操作记录到日志里。如...

在Xshell中怎么查找日志
答:cd /logs tail -n +100 catalina.out //查看末尾之上的100条日志 tail -f catalina.out //实时刷新 然后,再开一个窗口连接到该Ubuntu服务器,运行下面命令,以启动、停止Tomcat服务。cd /root/java/server/apache-tomcat-8.5.69 cd /bin startup.sh //启动tomcat 命令 shutdown.sh //停止...

Linux系统日志分析的基本教程
答:为了对一个字段值进行搜索,你首先需要解析日志或者至少有对事件结构进行检索的方式。如何对应用进行过滤通常,你可能只想看一个应用的日志。如果你的应用把记录都保存到一个文件中就会很容易。如果你需要在一个聚集或集中式日志中过滤一个应用就会比较复杂。下面有几种方法来实现:用rsyslog 守护进程解析和过滤日志。

SpringBoot2.0 基础案例(02):配置Log4j2,实现不同环境日志打印
答:《阿里巴巴Java开发手册》,其中有一条规范做了『强制』要求:SLF4J日志API Java简易日志门面(Simple Logging Facade for Java,缩写SLF4J),是一套包装Logging 框架的界面程式,使用外观模式实现。1、项目结构 2、不同环境的日志配置 使用最直接的方式,不同环境加载不同的日志配置。1)开发环境配置 2)...

简述Kubernetes中,如何使用EFK实现日志的统一管理?
答:在Kubernetes集群环境中,通常一个完整的应用或服务涉及组件过多,建议对日志系统进行集中化管理,通常采用EFK实现。EFK是 Elasticsearch、Fluentd 和 Kibana 的组合,其各组件功能如下:Elasticsearch:是一个搜索引擎,负责存储日志并提供查询接口;Fluentd:负责从Kubernetes搜集日志,每个Node节点上面的Fluentd监控...

SpringBoot日志logback配置
答:在前一个项目simple-boot-demo项目中配置日志相关。SpringBoot日志依赖为: spring-boot-starter-logging ,不过对于web项目,已经引入了 spring-boot-starter-web ,默认已经自带了日志的 spring-boot-starter-logging ,已经默认引入了 logback 实现,只需要配置application.yml即可。Spring内部使用 Commons ...

如何为你的JavaScript代码日志着色详解
答:使得日志可以发挥更大的价值。要实现这个功能,其实很简单;利用 console.log 字符串替代和格式设置功能即可;下面为其格式说明符的完整列表: 说明符 输出 %s 将值格式化为字符串 %i 或 %d 将值格式化为整型 %f 将值格式化为浮点值 %o 将值格式化为可扩展 DOM 元素。如同在 Elements...

SpringBoot日志跟踪
答:备注:如需在系统内的多线程实现日志一致性,则可以通过进行参数传递方式传输traceId 日志配置xml中使用[%X{traceId}]引用日志id 当前服务中相同线程打印日志都会带上日志id,如需要使用线程池或异步线程处理业务,请自行传入参数或进行线程间的数据传输 先使用过滤器从请求头获取traceId,存储到HystrixRequest...

springMvc记录日志的几种方法
答:aspectj-autoproxy>,即aspectj动态代理。具体的日志记录实现、可以采用匹配请求地址的方法进行记录(因为查询操作可能不需要记录),哪些需要记录的请求可以通过配置文件来配置,也可以通过注解来实现。或者是通过自定义注解来实现日志拦截,通过Pointcut拦截具体的注解而达到按需记录日志的功能。