NLog配置文件详解

一、属性详解

1. 属性一览
<target xsi:type="File"name="String"layout="Layout"header="Layout"footer="Layout"encoding="Encoding"lineEnding="Enum"archiveAboveSize="Long"maxArchiveFiles="Integer"maxArchiveDays="Integer"archiveFileName="Layout"archiveNumbering="Enum"archiveDateFormat="String"archiveEvery="Enum"          archiveOldFileOnStartup="Boolean"archiveOldFileOnStartupAboveSize="Long"replaceFileContentsOnEachWrite="Boolean"fileAttributes="Enum"fileName="Layout"deleteOldFileOnStartup="Boolean"enableFileDelete="Boolean"createDirs="Boolean"concurrentWrites="Boolean"openFileFlushTimeout="Integer"openFileCacheTimeout="Integer"openFileCacheSize="Integer"networkWrites="Boolean"concurrentWriteAttemptDelay="Integer"concurrentWriteAttempts="Integer"bufferSize="Integer"autoFlush="Boolean"keepFileOpen="Boolean"forceManaged="Boolean"enableArchiveFileCompression="Boolean"cleanupFileName="Boolean"writeFooterOnArchivingOnly="Boolean"writeBom="Boolean" />
2. 属性详情

name:输出配置名称,可以自己定义,随便写

layout:日志的格式模板 自定义,里面的变量可以参考官方文档

header:头部格式

footer:脚部格式

encoding:编码格式,可以是utf-8或者其他字符集

lineEnding:行结束模式

CR - 在每行后插入 CR 字符 (ASCII 13)。
CRLF - 在每行之后插入 CR LF 序列(ASCII 13、ASCII 10)
默认 - 在每行之后插入依赖于平台的行尾序列。
LF - 在每行后插入 LF 字符 (ASCII 10)。
无 - 不插入任何行尾。
这个是官方给的解释及参考值

archiveAboveSize:以字节为单位的大小,超过该大小的日志文件将被自动存档

maxArchiveFiles:应保留的最大存档文件数。如果maxArchiveFiles小于或等于 0,则不删除旧文件

maxArchiveDays: 应保留的存档文件的最长期限。当archiveNumbering为时无效Rolling。如果maxArchiveDays小于或等于 0,则不删除旧文件

archiveFileName:要用于存档的文件的名称 可以指定日志,具体参考官方文档

archiveNumbering:对文件档案进行编号的方式

archiveDateFormat:指定用于存档编号的日期格式。此选项仅在“ArchiveNumbering”参数设置为 Date 或 DateAndSequence 时有效

默认: yyyyMMdd
ArchiveEvery = 分钟时的默认值: yyyyMMddHHmm
ArchiveEvery = 小时时的默认值: yyyyMMddHH
ArchiveEvery = Month 时的默认值: yyyyMM
ArchiveEvery = Year 时的默认值: yyyy
archiveEvery:指示是否在每次经过指定时间时自动归档日志文件

日 - 每天存档。
小时 - 每小时存档一次。
分钟 - 每分钟存档一次。
月 - 每月存档。
无 - 不要根据时间存档。
年 - 每年存档。
星期日 - 每个星期日存档。在 NLog 4.4.4 中引入。
星期一 - 每周一存档。在 NLog 4.4.4 中引入。
星期二 - 每个星期二存档。在 NLog 4.4.4 中引入。
星期三 - 每周三存档。在 NLog 4.4.4 中引入。
星期四 - 每个星期四存档。在 NLog 4.4.4 中引入。
星期五 - 每星期五存档。在 NLog 4.4.4 中引入。
星期六 - 每星期六存档。在 NLog 4.4.4 中引入。
如果当前时间段发生变化,文件将作为写入操作的一部分移动到存档中。例如,如果当前小时从 10 点更改为 11 点,则在 11:00 或之后发生的第一次写入将触发

archiveOldFileOnStartup:在启动时存档旧日志文件

archiveOldFileOnStartupAboveSize:启动时存档旧日志文件的文件大小阈值。默认值为 0,这意味着一旦启用archiveOldFileOnStartup就会归档文件。在 NLog 4.7 中引入

replaceFileContentsOnEachWrite:指示是否在每次写入时替换文件内容,而不是在末尾附加日志消息

fileAttributes:文件属性(仅限 Windows)

存档 - 文件应该被存档。
压缩的- 由于 .Net 限制,压缩将不起作用。您可以使用 enableArchiveFileCompression。
DeleteOnClose - 关闭文件后删除文件。
设备 - 设备文件。
加密 - 加密文件。
隐藏 - 隐藏文件。
NoBuffering - 系统打开一个没有系统缓存的文件。
普通 - 普通文件。
NotContentIndexed - 内容索引服务不应为文件编制索引。
PosixSemantics - 根据 POSIX 规则访问文件。
只读 - 只读
ReadOnly - 只读文件。
ReparsePoint - 重新解析点。
SparseFile - 稀疏文件。
系统 - 系统文件。
临时 - 文件是临时的(应该保存在缓存中,如果可能的话不要写入磁盘)。
WriteThrough - 系统通过任何中间缓存写入并直接进入磁盘。
fileName:要写入的文件的名称

deleteOldFileOnStartup: 指示是否在启动时删除旧日志文件,此选项仅在“FileName”参数表示单个文件时有效。

enableFileDelete:指示是否启用删除日志文件

createDirs:是否创建不存在的目录

keepFileOpen:指示是否在每次记录事件时保持日志文件打开,将此属性更改为 true 将大大提高性能,但也会保持文件句柄锁定。启用此选项时,请考虑设置openFileCacheTimeout = 30,因为它将允许存档操作并对被删除的日志文件做出反应。

concurrentWrites:当使用keepFileOpen = true时,支持从同一机器主机上的多个进程优化并发写入同一日志文件。通过使用一种特殊的技术,它可以让文件从多个进程中打开。如果只有单个进程(和单个 AppDomain)应用程序正在记录日志,那么设置为concurrentWrites = False会更快。

openFileCacheTimeout:文件保持打开的最大秒数。如果此数字为负数,则文件在一段时间不活动后不会自动关闭

openFileCacheSize:要保持打开的文件数。在单个 File 目标写入多个文件(例如按级别或按记录器拆分)的情况下,将此设置为更高的值可能会提高性能

openFileFlushTimeout:显式刷新文件缓冲区之间的秒数。有助于确保文件缓冲区在autoFlush = false时最终被刷新

networkWrites:指示是否由不同网络主机上的多个进程并发写入日志文件。

concurrentWriteAttemptDelay:在尝试再次写入文件之前等待的延迟(以毫秒为单位)。整数默认值:1
实际延迟是一个介于 0 和此参数中指定的值之间的随机值。在每次失败的尝试中,延迟基数加倍为 ConcurrentWriteAttempts 次。

concurrentWriteAttempts:在 NLog 丢弃日志消息之前尝试写入文件的次数

bufferSize:以字节为单位的日志文件缓冲区大小。整数默认值:32768

autoFlush: 指示是否在每条日志消息后自动刷新文件缓冲区,禁用它会提高性能

forceManaged:指示文件目标应仅使用托管方法。这会禁用某些选项

enableArchiveFileCompression:指示是否将存档文件压缩为 zip 文件

cleanupFileName:在写入文件之前,检查文件名是否包含非法字符(取决于操作系统)。如果写入大量消息,这可能代价高昂。清理缓存为固定名称(无布局渲染器)。将此设置false为最佳性能(但要注意文件名,如果错误,则不会写入任何内容)

writeFooterOnArchivingOnly:指示是否应仅在归档文件时写入页脚

writeBom:指示是否在创建的文件中写入 BOM(字节顺序标记)

二、日志类型

1. JSON Log-file

Nlog不光能记录普通的log文件,还可以记录json格式。

<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><targets><target name="jsonfile" xsi:type="File" fileName="${basedir}/file.json"><layout xsi:type="JsonLayout"><attribute name="time" layout="${date:format=O}" /><attribute name="message" layout="${message}" /><attribute name="logger" layout="${logger}"/><attribute name="level" layout="${level}"/></layout></target></targets><rules><logger name="*" minlevel="Debug" writeTo="jsonfile" /></rules>
</nlog>
2. xml Log-file

可以记录xml格式的文件呢

<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><targets><target name="csvfile" xsi:type="File" fileName="${basedir}/file.csv"><layout xsi:type="CSVLayout"><column name="time" layout="${longdate}" /><column name="message" layout="${message}" /><column name="logger" layout="${logger}"/><column name="level" layout="${level}"/></layout></target></targets><rules><logger name="*" minlevel="Debug" writeTo="csvfile" /></rules>
</nlog>
3. 示例
3.1 Log
<?xml version="1.0" encoding="utf-8" ?>
<!-- XSD manual extracted from package NLog.Schema: https://www.nuget.org/packages/NLog.Schema-->
<nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"internalLogFile="c:\temp\console-example-internal.log"internalLogLevel="Info"><targets><targetxsi:type="ColoredConsole"name="colorConsole"encoding="Encoding"detectConsoleAvailable="true"detectOutputRedirected="false" useDefaultRowHighlightingRules="false"header="--------------------"layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception} ${newline} ${stacktrace} ${newline}"footer="---------------------"><highlight-row condition="level == LogLevel.Trace" backgroundColor="White" foregroundColor="DarkGray"/><highlight-row condition="level == LogLevel.Debug" backgroundColor="White" foregroundColor="DarkBlue"/><highlight-row condition="level == LogLevel.Info" backgroundColor="Green" foregroundColor="White"/><highlight-row condition="level == LogLevel.Warn" backgroundColor="Magenta" foregroundColor="DarkYellow"/><highlight-row condition="level == LogLevel.Error" backgroundColor="Gray" foregroundColor="Red"/><highlight-row condition="level == LogLevel.Fatal" backgroundColor="Gray" foregroundColor="DarkRed"/> </target><targetxsi:type="File"name="myfile"fileName="${basedir}/logs/${level:uppercase=true}.${shortdate}.log"createDirs="true"layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=ToString} ${newline} ${stacktrace} ${newline}"header="-------"footer="--------"encoding="utf-8"lineEnding="CRLF"keepFileOpen="true"concurrentWrites="false"openFileCacheTimeout="30"openFileCacheSize="6"openFileFlushTimeout="10"autoFlush="false"cleanupFileName="false"archiveAboveSize="10000"maxArchiveFiles="10"maxArchiveDays="10"archiveFileName="archive.${level:uppercase=true}.{#}.log"archiveNumbering="Date"archiveEvery="Month"archiveOldFileOnStartup="false"archiveOldFileOnStartupAboveSize="0"replaceFileContentsOnEachWrite="false"enableFileDelete="true"concurrentWriteAttempts="20000"networkWrites="false"/></targets><rules><logger name="*" minlevel="Trace" writeTo="colorConsole,myfile" /></rules>
</nlog>

在这里插入图片描述

3.2 Json

下面我们试一下json文件,然后我们换个目录看看效果

<?xml version="1.0" encoding="utf-8" ?>
<!-- XSD manual extracted from package NLog.Schema: https://www.nuget.org/packages/NLog.Schema-->
<nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"internalLogFile="c:\temp\console-example-internal.log"internalLogLevel="Info"><targets><targetxsi:type="ColoredConsole"name="colorConsole"encoding="Encoding"detectConsoleAvailable="true"detectOutputRedirected="false" useDefaultRowHighlightingRules="false"header="--------------------"layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception} ${newline} ${stacktrace} ${newline}"footer="---------------------"><highlight-row condition="level == LogLevel.Trace" backgroundColor="White" foregroundColor="DarkGray"/><highlight-row condition="level == LogLevel.Debug" backgroundColor="White" foregroundColor="DarkBlue"/><highlight-row condition="level == LogLevel.Info" backgroundColor="Green" foregroundColor="White"/><highlight-row condition="level == LogLevel.Warn" backgroundColor="Magenta" foregroundColor="DarkYellow"/><highlight-row condition="level == LogLevel.Error" backgroundColor="Gray" foregroundColor="Red"/><highlight-row condition="level == LogLevel.Fatal" backgroundColor="Gray" foregroundColor="DarkRed"/> </target><targetxsi:type="File"name="myfile"fileName="${basedir}/logs/${level:uppercase=true}.${shortdate}.log"createDirs="true"layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=ToString} ${newline} ${stacktrace} ${newline}"header="-------"footer="--------"encoding="utf-8"lineEnding="CRLF"keepFileOpen="true"concurrentWrites="false"openFileCacheTimeout="30"openFileCacheSize="6"openFileFlushTimeout="10"autoFlush="false"cleanupFileName="false"archiveAboveSize="10000"maxArchiveFiles="10"maxArchiveDays="10"archiveFileName="archive.${level:uppercase=true}.{#}.log"archiveNumbering="Date"archiveEvery="Month"archiveOldFileOnStartup="false"archiveOldFileOnStartupAboveSize="0"replaceFileContentsOnEachWrite="false"enableFileDelete="true"concurrentWriteAttempts="20000"networkWrites="false"/><targetxsi:type="File"name="myjsonfile"fileName="${basedir}/jsonlogs/${level:uppercase=true}.${shortdate}.json"createDirs="true"encoding="utf-8"lineEnding="CRLF"keepFileOpen="true"concurrentWrites="false"openFileCacheTimeout="30"openFileCacheSize="6"openFileFlushTimeout="10"autoFlush="false"cleanupFileName="false"archiveAboveSize="10000"maxArchiveFiles="10"maxArchiveDays="10"archiveFileName="archive.${level:uppercase=true}.{#}.log"archiveNumbering="Date"archiveEvery="Month"archiveOldFileOnStartup="false"archiveOldFileOnStartupAboveSize="0"replaceFileContentsOnEachWrite="false"enableFileDelete="true"concurrentWriteAttempts="20000"networkWrites="false"><layout xsi:type="JsonLayout"><attribute name="time" layout="${longdate:format=O}" /><attribute name="message" layout="${message}" /><attribute name="logger" layout="${logger}"/><attribute name="level" layout="${level}"/><attribute name="exception" layout="${exception:format=ToString}"/><attribute name="stacktrace" layout="${stacktrace}"/></layout></target></targets><rules><logger name="*" minlevel="Trace" writeTo="colorConsole,myfile,myjsonfile" /></rules>
</nlog>

在这里插入图片描述
xml我们就不做测试了,使用较少。

三、常用配置

以上介绍的所有NLog的属性配置,但是实际使用中,没有必要使用这么多属性。下面展示我常用的NLog配置文件。

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><!--输出目标,往哪里输出--><targets><!--此部分中的所有目标将自动异步--><default-wrapper xsi:type="AsyncWrapper"></default-wrapper><!--type:日志输出类型 File:文件 ColoredConsole:控制台--><!--fileName:日志存储的路径及名称--><!--layout:日志输出格式--><!-- archiveFileName:要用于存档的文件的名称 可以指定日志 --><!-- archiveAboveSize:以字节为单位的大小,超过该大小的日志文件将被自动存档 --><!-- archiveNumbering:对文件档案进行编号的方式 --><!-- concurrentWrites:当使用keepFileOpen = true时,支持从同一机器主机上的多个进程优化并发写入同一日志文件。通过使用一种特殊的技术,它可以让文件从多个进程中打开。如果只有单个进程(和单个 AppDomain)应用程序正在记录日志,那么设置为concurrentWrites = False会更快。 --><!-- keepFileOpen:指示是否在每次记录事件时保持日志文件打开,将此属性更改为 true 将大大提高性能,但也会保持文件句柄锁定。启用此选项时,请考虑设置openFileCacheTimeout = 30,因为它将允许存档操作并对被删除的日志文件做出反应。 --><!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"--><target name="info_file" xsi:type="File"fileName="${basedir}/Logs/${shortdate}/info_${shortdate}.txt"layout="${longdate} | ${event-properties:item=EventId_Id:whenEmpty=0} | ${uppercase:${level}} | ${logger} | ${message} ${exception:format=tostring}"archiveFileName="${basedir}/archives/info_${shortdate}-{#####}.txt"archiveAboveSize="102400"archiveNumbering="Sequence"concurrentWrites="true"keepFileOpen="false" /><target name="error_file" xsi:type="File"fileName="${basedir}/Logs/${shortdate}/error_${shortdate}.txt"layout="${longdate} | ${event-properties:item=EventId_Id:whenEmpty=0} | ${uppercase:${level}} | ${logger} | ${message} ${exception:format=tostring}"archiveFileName="${basedir}/archives/error_${shortdate}-{#####}.txt"archiveAboveSize="102400"archiveNumbering="Sequence"concurrentWrites="true"keepFileOpen="false" /><!--使用可自定义的着色将日志消息写入控制台--><!-- <target name="console" xsi:type="ColoredConsole" layout="[${date:format=HH\:mm\:ss}]:${message} ${exception:format=message}" /> --></targets><!--规则配置,final - 最终规则匹配后不处理任何规则--><!--定义使用哪个target输出--><rules><!-- 优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL --><!-- 将所有日志输出到文件 --><logger name="*" minlevel="Trace" maxlevel="Warn" writeTo="info_file" /><logger name="*" minlevel="Error" writeTo="error_file" /><!-- 将所有日志输出到控制台  --><!-- <logger name="*" minlevel="Debug" writeTo="console" /> --></rules>
</nlog>

配置中根据日志类型不同,分文件夹记录。也可以不这样做,删掉error那支target即可。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈低压绝缘监测及定位系统在海上石油平台的研究与应用

安科瑞 华楠 摘要&#xff1a;海上石油平台低压系统与陆地电力系统有很大区别&#xff0c;其属于中性点绝缘系统&#xff0c;在出现单相接地故障时&#xff0c;系统允许带故障正常运行2 h&#xff0c;保证海上重要电气设备不会立即关停。现以渤海某海上平台为例&#xff0c;其…

多篇论文介绍-可变形卷积

01 具有双层路由注意力的 YOLOv8 道路场景目标检测方法 01 摘要: 随着机动车的数量不断增加&#xff0c;道路交通环境变得更复杂&#xff0c;尤其是光照变化以及复杂背景都会干扰目标检测算法的准确性和精度&#xff0c;同时道路场景下多变形态的目标也会给检测任务造成干扰&am…

redis的一些操作

文章目录 清空当前缓存和所有缓存配置内存大小&#xff0c;防止内存饱满设置内存淘汰策略键过期机制 清空当前缓存和所有缓存 Windows环境下使用命令行进行redis缓存清理 redis安装目录下输入cmdredis-cli -p 端口号flushdb 清除当前数据库缓存flushall 清除整个redis所有缓存…

window文件夹下python脚本实现批量删除无法预览的图片

你是否遇到过下载的图片会发现有些图片会无法预览情况&#xff1f; 有几种原因可能导致一些图片在预览时无法正常显示&#xff1a; 损坏的图片文件&#xff1a; 图片文件可能损坏或者部分损坏&#xff0c;导致无法被正常解析和预览。这种情况可能是因为文件在传输过程中损坏、…

模块化Common JS 和 ES Module

目录 历程 1.几个函数&#xff1a;全局变量的污染&#xff0c;模块间没有联系 2.对象&#xff1a;暴露成员&#xff0c;外部可修改 3.立即执行函数&#xff1a;闭包实现模块私有作用域 common JS module和Module 过程 模块依赖&#xff1a;深度优先遍历、父 -> 子 -…

我在Vscode学OpenCV 几何变换(缩放、翻转、仿射变换、透视、重映射)

几何变换指的是将一幅图像映射到另一幅图像内的操作。 cv2.warpAffine&#xff1a;使用仿射变换矩阵对图像进行变换&#xff0c;可以实现平移、缩放和旋转等操作。cv2.warpPerspective&#xff1a;使用透视变换矩阵对图像进行透视变换&#xff0c;可以实现镜头校正、图像纠偏等…

基于 Flink CDC 打造企业级实时数据集成方案

本文整理自Flink数据通道的Flink负责人、Flink CDC开源社区的负责人、Apache Flink社区的PMC成员徐榜江在云栖大会开源大数据专场的分享。本篇内容主要分为四部分&#xff1a; CDC 数据实时集成的挑战Flink CDC 核心技术解读基于 Flink CDC 的企业级实时数据集成方案实时数据集…

视频转码方法:多种格式视频批量转FLV视频的技巧

随着互联网的发展&#xff0c;视频已成为日常生活中不可或缺的一部分。然而&#xff0c;不同的视频格式可能适用于不同的设备和平台&#xff0c;因此需要进行转码。在转码之前&#xff0c;要了解各种视频格式的特点和适用场景。常见的视频格式包括MP4、AVI、MKV、FLV等。其中&a…

left join查询耗时太慢,添加索引解决问题

背景 因为最近自己用的小app越用感觉加载越慢&#xff0c;以为是自己app开发逻辑出现问题了&#xff0c;结果才发现是自己很早以前的代码用到的是left join多表联查&#xff0c;以前因为数据少&#xff0c;所以没有感觉&#xff0c;现在数据量稍微一大&#xff0c;耗时就非常严…

Vatee万腾外汇市场新力量:vatee科技决策力

在当今数字化时代&#xff0c;Vatee万腾崭露头角&#xff0c;以其强大的科技决策力进军外汇市场&#xff0c;成为该领域的新力量。这一新动向将不仅塑造外汇市场的未来&#xff0c;也展现Vatee科技决策力在金融领域的引领作用。 Vatee万腾带着先进的科技决策力进入外汇市场&…

ON1 Photo RAW 2024 for Mac——专业照片编辑的终极利器

ON1 Photo RAW 2024 for Mac是一款专为Mac用户打造的照片编辑器&#xff0c;以其强大的功能和易用的操作&#xff0c;让你的照片编辑工作变得轻松愉快。 一、强大的RAW处理能力 ON1 Photo RAW 2024支持大量的RAW格式照片&#xff0c;能够让你在编辑过程中获得更多的自由度和更…

STM32F4系列单片机GPIO概述和寄存器分析

第2章 STM32-GPIO口 2.1 GPIO口概述 通用输入/输出口 2.1.1 GPIO口作用 GPIO是单片机与外界进行数据交流的窗口。 2.1.2 STM32的GPIO口 在51单片机中&#xff0c;IO口&#xff0c;以数字进行分组&#xff08;P0~P3&#xff09;&#xff0c;每一组里面又有8个IO口。 在ST…

Nacos和Eureka的区别

目录 配置&#xff1a; 区别&#xff1a; ephemeral设置为true时 ephemeral设置为false时&#xff08;这里我使用的服务是order-service&#xff09; 1. Nacos与eureka的共同点 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 2. Nacos与Eu…

验证码 | 可视化一键管控各场景下的风险数据

目录 查看今日验证数据 查看未来趋势数据 验证码作为人机交互界面经常出现的关键要素&#xff0c;是身份核验、防范风险、数据反爬的重要组成部分&#xff0c;广泛应用网站、App上&#xff0c;在注册、登录、交易、交互等各类场景中发挥着巨大作用&#xff0c;具有真人识别、身…

新手做抖店,这6点建议一定要收好,能让你不亏钱!

我是电商珠珠 我呢&#xff0c;目前身居郑州。 电商这个行业也做了5年多了&#xff0c;抖店从20年开始做&#xff0c;到现在也已经快3年了。 其实&#xff0c;我做抖店期间呢&#xff0c;踩过很多坑&#xff0c;所以今天就把我所踩过的坑&#xff0c;给做抖店的新手总结了6点…

[oeasy]python001_先跑起来_python_三大系统选择_windows_mac_linux

先跑起来 &#x1f94a; Python 什么是 Python&#xff1f; Python [ˈpaɪθɑ:n]是 一门 适合初学者 的编程语言 类库 众多 几行代码 就能 出 很好效果 应用场景丰富 在 各个应用领域 都有 行内人制作的 python 工具类库 非常专业、 好用 特别是 人工智能领域 pytho…

【高性能计算】CUDA,OpenCL,FPGA 加速,MPI

OpenCL OpenCL&#xff08;Open Computing Language&#xff09;是一种跨平台的GPU加速技术&#xff0c;由Khronos Group开发。OpenCL允许开发人员在不同的硬件平台上编写并行计算应用程序。 OpenCL使用C语言的子集来编写应用程序&#xff0c;并提供了一组API&#xff0c;可以…

opencv-图像对比度增强

对比度增强&#xff0c;即将图片的灰度范围拉宽&#xff0c;如图片灰度分布范围在[50,150]之间&#xff0c;将其范围拉升到[0,256]之间。这里介绍下 线性变换&#xff0c;直方图正规化&#xff0c;伽马变换&#xff0c;全局直方图均衡化&#xff0c;限制对比度自适应直方图均衡…

机器学习算法——集成学习

目录 1. Bagging1.1 工作流程1.2 代码实践 2. 随机森林2.1 工作流程2.2 代码实践 3. Adaboost3.1 工作流程3.2 样本权值的更新策略3.3 代码实践 4. Stacking4.1 代码实践 5. Voting5.1 代码实践 6. 集成学习分类 1. Bagging Bagging&#xff08;bootstrap aggregating&#xf…

steam游戏找不到steam_api64.dll,分享三个有效的解决方法

在现代科技发展的时代&#xff0c;游戏已经成为了许多人生活中不可或缺的一部分。而Steam作为全球最大的数字发行平台之一&#xff0c;拥有着庞大的游戏库和活跃的用户群体。然而&#xff0c;在使用Steam时&#xff0c;有些用户可能会遇到Steam_api64.dll丢失的问题&#xff0c…