.net8系列-07图文并茂手把手教你连接SqlServer数据库使用log4net记录.net日志

文章目录

    • 前情提要
        • 步骤概览
    • 下载依赖
        • 下载安装成功
    • 数据库准备
        • 脚本准备
        • 执行脚本,创建所需数据库
        • 创建成功,查看日志表
    • 准备代码
        • 初始代码
        • 配置数据库
        • 开启数据库写入日志逻辑
        • 开启日志
    • 运行测试
        • 删除之前的编译文件
        • 重新编译
        • 运行测试
        • 本地日志测试成功
        • 数据库日志测试成功
    • 结语
        • 欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

前情提要

请先根据.net8系列-05文章配置好log4net日志依赖,再进行下面的步骤:详情请参考:.net8系列-05图文并茂手把手教你.NET Core 下使用 Log4Net 记录日志,配置日志组件log4net

步骤概览

使用 log4net 写入日志通常需要以下几个步骤:

  • 添加 log4net 库引用
  • 在项目的配置文件中添加 log4net 的配置
  • 在 Program.cs 或 Global.asax.cs 文件中初始化 log4net
  • 使用 logger 记录日志

下载依赖

搜索并下载 System.Data.SqlClient

下载安装成功

数据库准备

首先你要拥有,创建好一个sqlServer数据库~

脚本准备
USE [master]
GO
/****** Object:  Database [Xiaojin.AgiletyFramework]    Script Date: 2024/10/05 18:01:23 ******/
CREATE DATABASE [Xiaojin.AgiletyFramework]GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [Xiaojin.AgiletyFramework].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET ARITHABORT OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET  ENABLE_BROKER 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET READ_COMMITTED_SNAPSHOT ON 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET RECOVERY FULL 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET  MULTI_USER 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET DB_CHAINING OFF 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET TARGET_RECOVERY_TIME = 60 SECONDS 
GO
EXEC sys.sp_db_vardecimal_storage_format N'Xiaojin.AgiletyFramework', N'ON'
GO
USE [Xiaojin.AgiletyFramework]
GO
/****** Object:  Table [dbo].[MenuEntity]    Script Date: 2024/10/05 18:01:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MenuEntity]([Id] [uniqueidentifier] NOT NULL,[ParentId] [uniqueidentifier] NOT NULL,[MenuText] [nvarchar](max) NULL,[MenuType] [int] NOT NULL,[Icon] [nvarchar](max) NULL,[WebUrlName] [nvarchar](max) NULL,[WebUrl] [nvarchar](max) NULL,[VueFilePath] [nvarchar](max) NULL,[IsLeafNode] [bit] NOT NULL,[OrderBy] [int] NOT NULL,[CreateTime] [datetime2](7) NOT NULL,[ModifyTime] [datetime2](7) NOT NULL,[Status] [int] NOT NULL,CONSTRAINT [PK_MenuEntity] PRIMARY KEY CLUSTERED 
([Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RoleEntity]    Script Date: 2024/10/05 18:01:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RoleEntity]([RoleId] [int] IDENTITY(1,1) NOT NULL,[RoleName] [nvarchar](max) NULL,[Status] [int] NOT NULL,[CreateTime] [datetime2](7) NOT NULL,[ModifyTime] [datetime2](7) NOT NULL,CONSTRAINT [PK_RoleEntity] PRIMARY KEY CLUSTERED 
([RoleId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RoleMenuMapEntity]    Script Date: 2024/10/05 18:01:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RoleMenuMapEntity]([Id] [int] IDENTITY(1,1) NOT NULL,[RoleId] [int] NOT NULL,[MenuId] [uniqueidentifier] NOT NULL,[CreateTime] [datetime2](7) NOT NULL,[ModifyTime] [datetime2](7) NOT NULL,[Status] [int] NOT NULL,CONSTRAINT [PK_RoleMenuMapEntity] PRIMARY KEY CLUSTERED 
([Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SystemLog]    Script Date: 2024/10/05 18:01:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SystemLog]([Id] [int] IDENTITY(1,1) NOT NULL,[Date] [datetime2](7) NOT NULL,[Thread] [nvarchar](max) NULL,[Level] [nvarchar](max) NULL,[Logger] [nvarchar](max) NULL,[Message] [nvarchar](max) NULL,[Exception] [nvarchar](max) NULL,CONSTRAINT [PK_SystemLog] PRIMARY KEY CLUSTERED 
([Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[UserEntity]    Script Date: 2024/10/05 18:01:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UserEntity]([UserId] [int] IDENTITY(1,1) NOT NULL,[Name] [nvarchar](max) NULL,[Password] [nvarchar](max) NULL,[UserType] [int] NOT NULL,[Phone] [nvarchar](max) NULL,[Mobile] [nvarchar](max) NULL,[Address] [nvarchar](max) NULL,[Email] [nvarchar](max) NULL,[QQ] [nvarchar](max) NULL,[WeChat] [nvarchar](max) NULL,[Sex] [int] NOT NULL,[Imageurl] [nvarchar](max) NULL,[LastLoginTime] [datetime2](7) NOT NULL,[CreateTime] [datetime2](7) NOT NULL,[ModifyTime] [datetime2](7) NOT NULL,[Status] [int] NOT NULL,CONSTRAINT [PK_UserEntity] PRIMARY KEY CLUSTERED 
([UserId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[UserRoleMapEntity]    Script Date: 2024/10/05 18:01:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UserRoleMapEntity]([Id] [int] IDENTITY(1,1) NOT NULL,[UserId] [int] NOT NULL,[RoleId] [int] NOT NULL,[CreateTime] [datetime2](7) NOT NULL,[ModifyTime] [datetime2](7) NOT NULL,[Status] [int] NOT NULL,CONSTRAINT [PK_UserRoleMapEntity] PRIMARY KEY CLUSTERED 
([Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[UserEntity] ON 
GO
INSERT [dbo].[UserEntity] ([UserId], [Name], [Password], [UserType], [Phone], [Mobile], [Address], [Email], [QQ], [WeChat], [Sex], [Imageurl], [LastLoginTime], [CreateTime], [ModifyTime], [Status]) VALUES (2, N'Richard老师', N'1234', 1, N'18672713698', N'18672713698', N'湖北武汉', N'18672713698@163.com', N'1030499676', N'MrRichard2020', 1, N'iamge', CAST(N'2023-12-20T16:42:21.8556726' AS DateTime2), CAST(N'2023-12-20T16:42:21.8466399' AS DateTime2), CAST(N'2023-12-20T16:42:21.8627641' AS DateTime2), 1)
GO
INSERT [dbo].[UserEntity] ([UserId], [Name], [Password], [UserType], [Phone], [Mobile], [Address], [Email], [QQ], [WeChat], [Sex], [Imageurl], [LastLoginTime], [CreateTime], [ModifyTime], [Status]) VALUES (3, N'Richard老师', N'1234', 1, N'18672713698', N'18672713698', N'湖北武汉', N'18672713698@163.com', N'1030499676', N'MrRichard2020', 1, N'iamge', CAST(N'2023-12-20T16:42:38.5023329' AS DateTime2), CAST(N'2023-12-20T16:42:38.4906967' AS DateTime2), CAST(N'2023-12-20T16:42:38.5111168' AS DateTime2), 1)
GO
SET IDENTITY_INSERT [dbo].[UserEntity] OFF
GO
USE [master]
GO
ALTER DATABASE [Xiaojin.AgiletyFramework] SET  READ_WRITE 
GO
执行脚本,创建所需数据库
  • 这里以DBever数据库软件为案例,连接好数据库以后,开始执行脚本
  • 因为使用这个软件不需要加GO,所以上面代码我全部去掉了GO


创建成功,查看日志表

准备代码

请先根据.net8系列-06,配置好log4net日志依赖,再进行下面的步骤:详情请参考:.net8系列-05图文并茂手把手教你.NET Core 下使用 Log4Net 记录日志,配置日志组件log4net

初始代码

代码位置以及名称:\xiaojinWebApplication\xiaojinWebApplication\configFile\log4net.Config

<?xml version="1.0" encoding="utf-8"?>
<log4net><!-- Define some output appenders --><appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"><file value="log4\log.txt" /><!--追加日志内容--><appendToFile value="true" /><!--防止多线程时不能写Log,官方说线程非安全--><lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><!--可以为:Once|Size|Date|Composite--><!--Composite为Size和Date的组合--><rollingStyle value="Composite" /><!--当备份文件时,为文件名加的后缀--><datePattern value="yyyyMMdd.TXT" /><!--日志最大个数,都是最新的--><!--rollingStyle节点为Size时,只能有value个日志--><!--rollingStyle节点为Composite时,每天有value个日志--><maxSizeRollBackups value="20" /><!--可用的单位:KB|MB|GB--><maximumFileSize value="3MB" /><!--置为true,当前最新日志文件名永远为file节中的名字--><staticLogFileName value="true" /><!--输出级别在INFO和ERROR之间的日志--><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ALL" /><param name="LevelMax" value="FATAL" /></filter><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/></layout></appender><!--SqlServer形式--><!--log4net日志配置:http://logging.apache.org/log4net/release/config-examples.html --><appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender"><!--日志缓存写入条数 设置为0时只要有一条就立刻写到数据库--><bufferSize value="0" /><connectionType value="System.Data.SqlClient.SqlConnection,System.Data.SqlClient, Version=4.6.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /><connectionString value="Data Source=PC-202206030027;Initial Catalog=LogManager;Persist Security Info=True;User ID=sa;Password=sa123" /><commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /><parameter><parameterName value="@log_date" /><dbType value="DateTime" /><layout type="log4net.Layout.RawTimeStampLayout" /></parameter><parameter><parameterName value="@thread" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%thread" /></layout></parameter><parameter><parameterName value="@log_level" /><dbType value="String" /><size value="50" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%level" /></layout></parameter><parameter><parameterName value="@logger" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%logger" /></layout></parameter><parameter><parameterName value="@message" /><dbType value="String" /><size value="4000" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message" /></layout></parameter><parameter><parameterName value="@exception" /><dbType value="String" /><size value="2000" /><layout type="log4net.Layout.ExceptionLayout" /></parameter></appender><root><!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--OFF:0--><!--FATAL:FATAL--><!--ERROR: ERROR,FATAL--><!--WARN: WARN,ERROR,FATAL--><!--INFO: INFO,WARN,ERROR,FATAL--><!--DEBUG: INFO,WARN,ERROR,FATAL--><!--ALL: DEBUG,INFO,WARN,ERROR,FATAL--> <priority value="ALL"/><level value="INFO"/><appender-ref ref="rollingAppender" /><!-- <appender-ref ref="AdoNetAppender_SqlServer" /> --></root>
</log4net>
配置数据库
  • 配置log4net.config中sqlserver,如果服务器IP是10.251.111.111,端口号是1433,密码是tangdoudou123,数据库名字是Xiaojin.AgiletyFramework,那么你可以修改代码如下:
  • 要在log4net.config中配置使用新的数据库表名SystemLog,您需要更新AdoNetAppender的部分配置。具体来说,需要更改commandText中的表名。
<connectionString value="Data Source=10.251.111.111,1433;Initial Catalog=Xiaojin.AgiletyFramework;Persist Security Info=True;User ID=sa;Password=tangdoudou123" />
<commandText value="INSERT INTO SystemLog ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />



开启数据库写入日志逻辑

开启日志
builder.Logging.AddLog4Net("configFile/log4net.Config");

运行测试

删除之前的编译文件

重新编译


运行测试



本地日志测试成功

数据库日志测试成功

结语

  • 今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1556332.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【英语】2. 英语的表达习惯

文章目录 前言less v. more n.解释e.g. less v. more prep.被动与中文的歧义总结参考文献 前言 进行英语前后缀的复习 less v. more n. 解释 外国的表达方式&#xff1a;更多地偏向静态&#xff0c;因此更多地使用名词 e.g. (rather Chinglish expression) She could not c…

使用 docker-compose 启动 es 集群 + kibana

编写 docker-compose yaml version: v3 services:elasticsearch-node1:image: elasticsearch:7.17.24container_name: elasticsearch-node1ports:- "9200:9200"- "9300:9300"environment:- node.nameelasticsearch-node1- cluster.namemy-es-cluster- dis…

云计算身份认证与访问控制(Cloud Computing Identity Authentication and Access Control)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

PyEcharts教程(002):上手PyEcharts

2、上手PyEcharts&#xff08;以jupyter notebook编译&#xff09; 2.1 如何查看pyecharts版本 import pyecharts print(pyecharts.__version__)2.2 上手Pyecharts 首先绘制第一个图表 from pyecharts.charts import Bar # 创建柱形图对象 bar Bar() # 添加x轴 bar.add_xa…

Python案例--九九乘法表

乘法口诀表是学习基础数学中不可或缺的工具&#xff0c;它帮助我们快速记忆乘法结果。在这篇文章中&#xff0c;我将向你展示如何使用Python编程语言来生成一个9x9的乘法口诀表。这不仅对教育工作者和学生有用&#xff0c;而且对任何需要快速回顾乘法事实的人来说都是一个有用的…

浸没边界 直接强迫法 圆球绕流验证 阅读笔记

Combined multi-direct forcing and immersed boundary method for simulating flows with moving particles https://doi.org/10.1016/j.ijmultiphaseflow.2007.10.004 他的意思是&#xff0c;不止需要一次的直接强迫 直接强迫的次数与误差成低于二阶的关系 不知道是不是一阶…

学习使用Cube软件

一、点亮LED灯 1、新建项目 File → New → STM32 Project搜索芯片信号项目名称 弹窗点击Yes 2、点亮LED 配置GPIO为输出模式 细化配置 保存&#xff08;ctrl S&#xff09;自动生成代码 手动生成代码 选择跳转到代码页面

【机器学习】知识总结1(人工智能、机器学习、深度学习、贝叶斯、回归分析)

目录 一、机器学习、深度学习 1.人工智能 1.1人工智能概念 1.2人工智能的主要研究内容与应用领域 1.2.1主要研究内容&#xff1a; 1.2.2应用领域 2.机器学习 2.1机器学习的概念 2.2机器学习的基本思路 2.3机器学习的分类 3.深度学习 3.1深度学习的概念 3.2人工智能…

网站集群批量管理-Ansible-模块管理

1. 概述 1. 自动化运维: 批量管理,批量分发,批量执行,维护 2. 无客户端,基于ssh进行管理与维护 2. 环境准备 环境主机ansible10.0.0.7(管理节点)nfs01 10.0.0.31(被管理节点)backup10.0.0.41(被管理节点) 2.1 创建密钥认证 安装sshpass yum install -y sshpass #!/bin/bash ##…

毕设 大数据抖音短视频数据分析与可视化(源码)

文章目录 0 前言1 课题背景2 数据清洗3 数据可视化地区-用户观看时间分界线每周观看观看路径发布地点视频时长整体点赞、完播 4 进阶分析相关性分析留存率 5 深度分析客户价值判断 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕…

自然语言处理问答系统

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

调试意义、步骤及方式

调试 文章目录 调试1.什么是bug&#xff1f;2.调试是什么&#xff1f;有多重要&#xff1f;2.1调试2.2调试的基本步骤2.3Debug和Release的介绍2.3.1常用的快捷键及功能1.F52.F9条件断点3.F104.F115.CTRLF5 3.调试的时候查看程序当前信息3.1查看临时变量的值3.1.1自动窗口3.1.2监…

力扣59.螺旋矩阵||

题目链接&#xff1a;59. 螺旋矩阵 II - 力扣&#xff08;LeetCode&#xff09; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff…

Github 2024-10-06 php开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Blade项目2Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次…

HarmonyOS第一课 04 应用程序框架基础-习题分析

判断题 1.在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。T 正确(True) 错误(False) 这个答案是T - AppScope > app.json5&#xff1a;app.json5配置文件&#xff0c;用于声明应用的全局配置信息&#xff0c;比如应用…

【TypeScript】知识点梳理(三)

#void前面提到了代表空&#xff0c;但有个特殊情况&#xff0c;是空不是空&#xff0c;细谈是取舍&#xff0c;但我们不深究hhh# 代码示例&#xff1a; type func () > voidconst f1: func function() {return true; } 定义了空&#xff0c;返回非空值&#xff0c;理论…

关于软件开发的ChatGPT提示词

面向软件开发人员的 ChatGPT 提示词 不会用ChatGPT就如同上图~~ 所以先推荐一波好用的提示词 1. 代码生成&#xff1a; 为名为 [name] 的 [class/module/component] 生成具有以下功能的样板 [language] 代码&#xff1a;[functionality description]。 创建一个 [语言] 函数以…

二叉树基本概念讲解

一.树的概念 1.概念 树是⼀种非线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09;个有限结点组成⼀个具有层次关系的集合。把它叫 做树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有⼀个特殊的结点&#xff0c…

计算机的错误计算(一百一十五)

摘要 用错数定量解释计算机的错误计算&#xff08;一百一十四&#xff09;中的错误计算原因。 例1. 已知 计算 在 的错数&#xff0c;并与计算机的错误计算&#xff08;一百一十四&#xff09;中的相应错误数字个数做比较。 由 知&#xff0c; 再由 可得&#xff0c…

Ubuntu 搭建 GitLab

1. 安装依赖&#xff1a; sudo apt update sudo apt install -y curl openssh-server ca-certificates2. 添加 GitLab 包仓库&#xff1a; curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash3. 安装 GitLab&#xff1a; s…