16_日志技术

SAP自建表数据变更追踪:三种日志方案详解 本文详细解析了SAP自建表数据变更追踪的三种核心方案:表技术设置、SE16N日志和SCDO文档更改对象。针对不同业务需求,分别介绍了各方案的配置步骤、使用技巧及优缺点对比,帮助用户实现高效的数据更改记录管理,满足审计、合规和业务追溯需求。 阅读详情

日志技术

什么是日志?
  • 程序中的日志,通常是一个文件,里面记录的是程序运行过程中的各种信息
  • 好比生活中的日志,可以记录你生活中的点滴
日志的好处
  • 可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)
  • 可以随时以开关的形式控制日志的启停,无需侵入到源代码中去进行修改
日志框架

框架:(大神或者第三方公司已经做好的实现代码,后来者直接可以拿去使用)

  • 官方的JUL(java.util.logging)
  • Log4j
  • Logback
  • 其他…

日志接口:设计日志框架的一套标准,日志框架需要实现这些接口

  • Commons Logging(JCL)
  • Simple Logging Facade for Java(SLF4J)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class Test {
    // 创建一个 Logger 日志对象(注意!不要使用 Java 官方的 Logger,使用的是 slf4j 的 Logger)
    public static final Logger LOGGER = LoggerFactory.getLogger("LogBackTest");

    public static void main(String[] args) {
        try {
            LOGGER.info("add方法开始执行");
            add(6, 7);
            LOGGER.info("add方法执行完毕");

        } catch (Exception e) {
            LOGGER.error("程序出错");
        }
    }

    public static void add(int a, int b) {
        LOGGER.debug("参数a=" + a);
        LOGGER.debug("参数b=" + b);
        int c = a + b;
        System.out.println(a + " + " + b + " " + " = " + c);
        LOGGER.info("相加结果:" + c);
    }
}
日志配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- CONSOLE: 日志信息输出到控制台时的格式 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.out</target>
        <encoder>
            <!-- 输出格式化 -->
            <!-- %d表示日期  %-5level表示从左显示5个字符宽度日志级别  %c表示类  %thread表示线程名  %msg表示日志消息  %n表示换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern>
        </encoder>
    </appender>

    <!-- FILE: 日志信息输出到文件时的格式 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志输出到哪个文件 -->
        <file>D:\Users\Ander\Desktop\demo\log-app\log\data.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 指定日志文件拆分和压缩规则 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 通过指定压缩文件名称,来确定分割文件方式 -->
            <fileNamePattern>D:\Users\Ander\Desktop\demo\log-app\log\log-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <!-- 文件拆分大小 -->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
    </appender>

    <!-- level用来控制所打印日志的级别,默认是debug级别(大小写无关) -->
    <!-- 其他的级别还有:TRACE, DEBUG, INFO, WARN, ERROR 或者 ALL, OFF -->
    <!-- ALL: 开启日志 -->
    <!-- OFF: 关闭日志 -->
    <root level="ALL">
        <appender-ref ref="CONSOLE"/>  <!-- 若不想输出到控制台,删除此行即可 -->
        <appender-ref ref="FILE"/>  <!-- 若不想输出到文件,删除此行即可 -->
    </root>
</configuration>
日志级别
日志级别说明
trace追踪,指明程序运行轨迹
debug调试,实际应用中一般将其作为最低级别,而 trace 则很少使用
info输出重要的运行信息,数据连接,网络连接,IO 操作等等,使用较多
warn警告信息,可能会发生问题,使用较多
error错误信息,使用较多
    <root level="ALL">  <!-- 可修改级别,例如 info、warn、error -->
        <appender-ref ref="CONSOLE"/>  <!-- 此行配置是负责输出到控制台,若不想输出到控制台,删除此行即可-->
        <appender-ref ref="FILE"/>  <!-- 此行配置是负责输出到文件,若不想输出到文件,删除此行即可-->
    </root>

只有日志的级别是大于或等于核心配置文件的日志级别,才会被记录,否则不记录

SAP自建表数据变更追踪:SM30、SE16N、SCDO三种日志方案保姆级对比 本文深入解析SAP自建表数据变更追踪的三种主流方案:SM30表技术设置、SE16N通用日志和SCDO文档更改对象。从实现机制到应用场景,详细对比各方案的优缺点,帮助ABAP开发者和功能顾问根据合规审计、故障排查等需求选择最佳方案,确保数据变更记录的安全性和可追溯性。 阅读详情

相关推荐

16、错误处理与日志记录及代码扩展技术

本文详细介绍了日志记录的严重性级别,并演示了如何在 Go 和 Python 中实现日志记录功能。同时,深入探讨了代码扩展的重要性及相关技术,包括多任务处理、调度器的使用、微服务架构和容器化技术。通过这些内容,读者可以掌握构建可扩展的网络自动化解决方案的关键技术。

potato的博客 53

Ubuntu 16.04 下 Graylog 2 日志管理实战指南

日志管理是运维可观测性的基础能力,其核心在于实现日志的集中采集、结构化存储与高效检索。Graylog 作为专为日志场景设计的开源平台,依托 GELF 协议和三层解耦架构(采集-存储-分析),在资源受限、系统冻结的老旧环境中展现出独特优势。相比 ELK 的高依赖性和 Loki 的云原生前提,Graylog 2 对 Java 8、Elasticsearch 5.x 和传统 syslog 生态的深度兼容,使其成为 Ubuntu 16.04 等 EOL 系统上可落地、低维护的日志治理方案。本文聚焦真实工业现场约束,

weixin_33552698的博客 283

16、日志传送与复制:灾难恢复技术对比分析

本文详细对比了日志传送和复制技术在灾难恢复中的应用。日志传送具有无状态、多备用数据库支持、低资源开销等优点,但也存在数据丢失和故障恢复复杂等问题。而复制技术虽然数据传输更快、潜在数据丢失更少,但其高开销和复杂性限制了其适用性。文章通过分析技术特点、优缺点以及综合决策流程,帮助读者根据业务需求和技术环境选择合适的灾难恢复方案。

tequila的博客 80

技术日志2023-5-16

记录开发过程中的所思所感所想

Owen Guo 186

Verilog与综合:数字逻辑的代码化革命及其未来挑战

本文深入探讨Verilog硬件描述语言与逻辑综合技术在数字芯片设计中的革命性作用。Verilog实现了数字逻辑的代码化描述,而综合技术则将其自动转换为门级网表,大幅提升设计效率。文章重点分析了在先进工艺节点下面临的时序、功耗和物理效应等挑战,并展望了AI驱动综合优化的未来发展方向。

postgres8guard的博客 801

【操作系统】 Operation System 第二章:操作系统基础操作

2.1 操作系统的启动 (1)CPU, I/O, 内存通过总线连接。 (2)DISK:存放OS; BIOS:基本I/O处理系统( basic I/O system); Bootloader: 加载OS到内存中。 (3)当电脑通电时,段寄存器CS和指令寄存器IP能够确定一个内存地址,例如CS:IP = 0xf000:fff0. (4)POST(加电自检),寻找显卡和执行BIOS。(显示器,键盘…是否...

iwanderu的博客 1万+

SAP自建表日志

输入文本、表名,按照情况勾选表名后的选项,比如“内部表”选项:当勾选上则每次处理多条数据,生成的日志函数里包含CHANGEDOCUMENT_MULTIPLE_CASE子函数。以下代码为固定代码(如果SCDO维护时表后面的选项改变了,则需要调整以下代码,一般保持空选项即可),直接复制过去即可。以下代码会引用日志对象的2个INCLUDE文件,调用系统自动生成的FORM记录日志。此种方式是基于表的日志,只要表里任何一个字段有修改,或者整条记录的删除、新增都会有对应的一条完整的记录,而不是多个字段修改多条记录。

HAND_YS的博客 2497

OpenCV卡尺工具实战:5步搞定工业级圆与直线拟合(附完整C++源码)

本文详细介绍了使用OpenCV卡尺测量工具实现工业级圆与直线拟合的5个关键步骤,包括核心原理、环境配置、边缘点提取优化、鲁棒性几何拟合实现及QT集成技巧。通过模块化C++源码和实战案例,帮助开发者快速掌握高精度尺寸测量技术,适用于机械零件、PCB板等工业检测场景。

uran的专栏 842

mysql 隐藏中间四位_熬夜肝出5大总结,16个技术点带你彻底弄懂MySQL事务日志

在当今社会,充斥着大量的数据。从众多APP上的账户资料到银行信用体系等个人档案,都离不开对大量数据的组织、存储和管理。而这,便是数据库存在的目的和价值。目前数据库的类型主要分为两种,一种是关系型数据库,另一种是非关系型数据库(NoSQL)。而我们今天的主角MySQL就是关系型数据库中的一种。一、关系型数据库与NoSQL关系型数据库,顾名思义,是指存储的数据之间具有关系。这种所谓的关系通常用二维表格...

weixin_42513602的博客 129

SAP-PP 返工订单成本归集优化:从物料结算到成本中心的配置与增强实践

本文深入探讨SAP-PP模块中返工订单成本归集的优化方案,重点解析从物料结算到成本中心的配置与增强实践。通过结算参数文件配置、分配结构调整及增强开发实战,解决返工费用误计入物料成本的问题,确保财务核算精准性。文章还提供测试验证方案与常见报错处理技巧,助力企业实现成本数据清晰流向分析。

weixin_29260291的博客 363

CMU开源NavRL:深度强化学习如何破解无人机动态避障难题?

卡内基梅隆大学(CMU)开源了NavRL框架,利用深度强化学习解决无人机在复杂环境中的动态避障难题。该框架通过创新的状态表示、多目标奖励函数设计以及独立的安全屏障机制,使无人机能够通过仿真训练自主学会灵活、安全的导航策略,并成功实现从仿真到真实环境的零样本迁移。

hope8的博客 720

PostgreSQL 技术日报 (6月16日)|Neon 自动化再进一步,逻辑复制冲突日志迎来 v50 更新

🔔 关注【IvorySQL开源数据库社区】即可获取 PostgreSQL 一手干货与最新动态。

IvorySQL的博客 214

ardupilot SBUS输入捕获

本节主要记录ardupilot 的sbus 输入捕获功能。ardupilot 默认支持多种无线协议控制输入设备,比如常用的PPM,SBUS,IBUS,DSM,SUMD,SRXL等协议,本节主要讲解ardupilot 如何通过定时器的pwm输入捕获来获取sbus数据。

陌城烟雨 269

微信Log日志分析——初步探索

转:https://www.toutiao.com/i6480401747104760333/ 前言 Android 系统及其程序日志(Log)通常通过LogCat输出,小app一般采用Android 自带的工具类Log,一旦有点规模的APP都会封装自己的Log工具类,那么作为开放平台的微信会如何输出自己的log信息。大胆猜想应该是封装一个自己的日志类,用于控制发布时关闭日志输

zhangmiaoping23的专栏 1万+

【Ranger】mac下Apache Ranger编译安装

a、编译过程中出现测试用例不通过和文件认证错误错误:带上参数-DskipTests=true -Drat.skip=true 重新编译;b、若编译过程中出现缺少jar包的情况,可能下载不了,需要手动自动添加;c、编译所需的其他工具如maven等安装配置略。采用这个会报错,因此我才用了下面一个命令。初始化设置Ranger Admin:执行。然后进入target目录。

九师兄 2103

RT-DETR改进策略【Conv和Transformer】| HiLo注意力机制 通过分离处理图像的高频和低频信息,高效处理图像特征

本文记录的是利用改进检测模型,针对目标检测中面临的多尺度特征融合效率与长距离依赖建模难题,HiLo注意力模块的引入旨在通过频率解耦策略优化高分辨率特征处理,将高频细节(如目标边缘)与低频语义(如场景结构)分离建模,提升目标检测精度。Fast Vision Transformers with HiLo AttentionHiLo注意力模块的提出源于对传统自注意力机制局限性的反思。传统多头自注意力(MSA)在处理高分辨率图像时存在以下问题:HiLo将注意力模块分为高频(Hi-Fi)和低频(Lo-Fi)两个分支,

Limiiiing的博客 817

SAP自建表日志(四种方式,SCU3,SCDO等)<转载>

输入文本、表名,按照情况勾选表名后的选项,比如“内部表”选项:当勾选上则每次处理多条数据,生成的日志函数里包含CHANGEDOCUMENT_MULTIPLE_CASE子函数。以下代码为固定代码(如果SCDO维护时表后面的选项改变了,则需要调整以下代码,一般保持空选项即可),直接复制过去即可。以下代码会引用日志对象的2个INCLUDE文件,调用系统自动生成的FORM记录日志。此种方式是基于表的日志,只要表里任何一个字段有修改,或者整条记录的删除、新增都会有对应的一条完整的记录,而不是多个字段修改多条记录。

qq_55488207的博客 299

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

有赞百亿级日志系统架构设计

墨墨导读:本文跟大家分享有赞在当前日志系统的建设、演进以及优化的经历,这里先抛砖引玉,欢迎大家一起交流讨论。一、概述日志是记录系统中各种问题信息的关键,也是一种常见的海量...

Enmotech的博客 404

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Ubuntu 16.04 Nginx日志模块深度定制指南

Nginx日志模块是HTTP服务可观测性的核心基础,其原理植根于HTTP请求处理流程中的log_handler钩子机制,通过log_format指令动态解析变量(如$request_id、$upstream_response_time)实现结构化记录。该模块的技术价值在于支撑精细化运维——包括延迟P95统计、全链路追踪与地域风控,广泛应用于金融网关、高并发API网关及SRE日志审计等生产场景。然而在Ubuntu 16.04等LTS系统中,APT默认包受限于编译选项与版本锁定(如nginx-extras 1.

weixin_34023982的博客 412

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Navicat 技术指引 | 适用于 GaussDB 分布式的日志查询与配置设置

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等)。这使得Navicat 可以极大地满足 GaussDB 分布式用户的管理开发需求。本文,我们就来介绍 Navicat 连接 GaussDB 分布式的快速入门。

Navicat 官方账号 1356

ClickHouse 亿级数据实战:如何在单机 16G 内存下实现“秒级”日志分析?

在日志分析场景(Log Analysis),传统的 ELK 架构(Elasticsearch + Logstash + Kibana)是标配。存储成本高:ES 的索引膨胀率高,1TB 原始日志可能需要 1.5TB 磁盘。内存吃紧:Java 堆内存机制导致它极其依赖 RAM,没有 64G 内存很难玩转亿级数据。ClickHouse 的降维打击:压缩比变态:1TB 日志存入 CH,通常只需 100GB - 200GB(10:1 压缩比)。不依赖内存:基于磁盘也能跑得飞快,16G 内存足够处理亿级数据。

BUG猿的博客 791

LLaMA-Factory WebUI训练报错解决:fp16设置与unsloth加速的那些坑

本文深入解析了LLaMA-Factory WebUI训练过程中常见的fp16设置与unsloth加速问题,提供了从环境配置到高级调试的全面解决方案。通过实战案例和性能优化技巧,帮助开发者有效规避训练陷阱,提升模型训练效率。

aa123的博客 794

蓝凌EKP V16.0升级踩坑记:从Log4j到SLF4J+Logback的日志框架迁移实战

本文详细记录了蓝凌EKP V16.0系统从Log4j迁移到SLF4J+Logback日志框架的实战经验。文章涵盖了依赖调整、配置文件重构、代码修改、性能优化等关键步骤,并提供了常见问题排查和迁移后的最佳实践,帮助开发者在OA系统升级中顺利完成日志框架迁移。

weixin_30527423的博客 171

c++ 读文件 文件指针 继续读_GOLANG秒读16GB大文件

现代计算机系统每天都会产生大量的数据,随着系统规模的增大,把产生的所有调试数据存储到数据库是不可行的,因为它们产生以后就不会被改变,只是用来分析和解决故障。因此把它存储在本地磁盘上是一个很好的办法。 在这我们打算使用GOLANG读取一个16GB大小,上百万行内容的txt或者log文件。跟我一起来吧。LET CODE首先我们使用GO标准库中的os.File来打开文件f,...

weixin_39592026的博客 120

Qwen-Turbo-BF16 Linux系统管理:AI辅助运维实战

本文介绍了如何在星图GPU平台自动化部署千问图像生成 16Bit (Qwen-Turbo-BF16)镜像,实现AI辅助Linux系统运维。该镜像可应用于智能日志分析、故障预测和自动化脚本生成等场景,显著提升运维效率与智能化水平。

weixin_32242475的博客 24
上一篇: 15_特殊文件
下一篇: 01_多线程与线程安全
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值