Scala按天写入日志文件

Scala语言的文件操作 Scala是一种兼具面向对象和函数式编程特性的编程语言,其语法简洁,功能强大,常用于大数据处理、并发编程以及Web开发等领域。与Java一样,Scala可以方便地进行文件操作,利用Scala的丰富库进行文件的读写、处理和管理。本文将深入探讨Scala语言中的文件操作,包括读取、写入、复制、删除等常见任务,并附带详细的示例代码,帮助读者更好地理解在Scala中进行文件操作的方法和技巧。 阅读详情

如果希望把每天出错的信息写入日志文件,每天新建一个文件。

package test.scala
import java.io.{File, FileWriter}
import java.text.SimpleDateFormat
import java.util.{Calendar, Date}
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future

object LogWriter {
  private val logDirectory = new File("D:\\data\\log")
  private val dateFormat = new SimpleDateFormat("yyyy-MM-dd")
  private val lock = new Object()

  private def createLogFile(): File = {
    val currentDate = dateFormat.format(new Date())
    val logFileName = s"$currentDate.log"
    val logFile = new File(logDirectory, logFileName)

    if (!logDirectory.exists()) {
      logDirectory.mkdirs()
    }

    if (!logFile.exists()) {
      logFile.createNewFile()
    }

    logFile
  }

  def writeLog(content: String): Unit = {
    lock.synchronized {
      val logFile = createLogFile()
      val currentTime = Calendar.getInstance().getTime
      val dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
      val formattedTime = dateFormat.format(currentTime)
      //val logLine = s"$content\n"
      val logLine = s"$formattedTime: $content\n"

      val fileWriter = new FileWriter(logFile, true)
      fileWriter.write(logLine)
      fileWriter.close()
    }
  }

  def main(args: Array[String]): Unit = {
    LogWriter.writeLog("日志测试一")
    LogWriter.writeLog("日志测试二")
    LogWriter.writeLog("日志测试三")
  }
}

在这里插入图片描述

日志文件内容:
在这里插入图片描述

IntelliJ IDEA上搭建Flink开发环境——Scala版 1、创建一个maven工程 2、填入GroupId和ArtifactId 3、继续点击Next,最后点击Finish创建工程 4、打开Setting,选择Plugins,下载Scala插件 5、下载完成,按照提示重启IntelliJ IDEA,然后打开Project Structure,选择Libraries,点击添加,选择Scala SDK版本 6、如果没有版... 阅读详情

相关推荐

scala日志打印 日志框架

目录 maven 下载jar 添加jar到项目依赖 code 配置文件 日志文件 命令行日志打印 maven <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <scala.binary.ve.

yy的博客 1107

Scala基础:掌握Source读取数据、写入数据的功能

1.已知项目下的data文件夹的文本文件中记录了一些学员的成绩如下格式为姓名 语文成绩 数学成绩 英语成绩2.按照学员的总成绩降序排列后按照姓名 语文成绩 数学成绩 英语成绩 总成绩的格式, 将数据写到项目下的 data文件夹的stu.txt文件中。

黑马程序员官方博客 1624

31、Scala文件操作全解析

本文全面解析了Scala中的文件操作技术,涵盖了读取和写入文本文件、处理二进制文件、CSV文件解析、字符串模拟文件、对象序列化以及目录遍历等多种场景。通过示例代码和对比分析,帮助开发者高效完成各类文件操作任务,并提供了流程图和表格总结,便于理解与参考。

ii567的博客 80

scala从文件中读取数据、将数据写入文件

调用scala.io中Source包下的fromFile方法,参数给路径,直接读取打印。scalaIO中并没有相关方法,直接调javaIO中方法。在resources目录下新建一个test.txt文件。新建一个maven项目,添加scala支持,

W2398439780的博客 1175

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 452

桑基图实战指南:Excel/Python/R三工具高效绘制方法

桑基图是一种以线条宽度编码流量大小、以节点位置表达流程阶段、以连接关系呈现数据流向的专项可视化技术,其核心原理在于‘宽即量、位即序、连即逻辑’。它并非装饰性图表,而是面向业务诊断的分析前置工具,尤其适用于预算分配、能源损耗、用户转化等存在明确单向流动与显著数值差异的场景。相比传统柱状图或漏斗图,桑基图能天然暴露系统瓶颈与隐性损耗,大幅提升决策效率。本文聚焦工程落地,覆盖Excel插件快速交付、Python Plotly交互开发、R networkD3生态集成三大主流路径,兼顾数据准备铁律、索引映射规范与中文

cuml0912的博客 487

Scala基础(四)

Scala是一种纯粹的面向对象语言,面向对象语言有两个重要的概念:类和对象。其中,类是对象的抽象,也可以把类理解为模板,对象才是真正的实体。class ClassName(参数列表) extends t {一个Scala源文件中可以有多个类,并且Scala类可以有参数。一般,Scala类名的第一个字母需要大写,如果需要使用几个单词构成一个类的名称,那么每个单词的第一个字母都要大写。与Java等其他语言不同的是,Scala中的类不定义为public。

Z_Data的博客 1093

MIKE11实战:平原河网水动力建模从入门到精通(附GIS数据处理技巧)

本文系统介绍了MIKE11软件在平原河网水动力建模中的完整实战流程。从GIS数据预处理、河网构建、参数率定到结果分析,详细阐述了构建可靠数字孪生模型的关键步骤与技巧,旨在帮助水利工程师高效解决平原地区复杂水流模拟的挑战,为防洪决策提供科学依据。

weixin_28419039的博客 687

Scala日志SLF4J配置

Scala日志配置 scala的日志与java的基本相同,看到网上一篇入门讲解的非常详细java日志使用记录log4j使用总结,作者是习翔宇 Spark默认的日志配置文件路径在spark-2.1.1-bin-hadoop2.7文件夹下面,例如D:\ProgramData\spark-2.1.1-bin-hadoop2.7\conf\log4j.properties 我们可以把log4j.prope...

Nice的博客 1532

Open-Sora代码详细解读(1):解读DiT结构

目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深入解读背后的原理。

沉迷单车的追风少年 2263

深度解析:C# Modbus TCP协议解析与异常处理(工控上位机必备)

协议解析要精准:掌握MBAP头和PDU的结构,尤其是常用功能码的请求/响应格式,避免因字节处理错误导致通信失败;异常处理要全面:覆盖通信层、协议层、数据层的所有异常类型,针对工业场景制定重试、重连、滤波等策略;资源管理要规范:使用释放资源,采用连接池复用连接,避免端口泄露;工业场景要适配:结合工控现场的特点(网络波动、电磁干扰、设备忙),优化通信效率和数据处理逻辑。通过以上解析和策略,可确保C#上位机与工业设备的Modbus TCP通信具备高稳定性、高可靠性、高容错性,满足工控领域的严苛要求。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 996

Scala模拟生成日志文件

代码】Scala模拟生成日志文件。

weixin_44328257的博客 544

【Arduino 动手做】构建一个迷你 Las Vegas RGB LED 球体

《Arduino迷你拉斯维加斯球体项目:15岁少年的创意挑战》 15岁的Ben通过本项目展示了如何利用Arduino平台制作一个经济实惠的迷你拉斯维加斯球体夜灯。该项目涉及LED选择(采用WS2812B可编程灯带)、电子元件配置(含Arduino Nano微控制器和红外遥控)以及3D建模设计(100毫米直径球体)。项目难点包括LED布局优化、供电方案设计和3D打印外壳制作。Ben详细记录了从背景研究、电路设计到最终实现的完整过程,特别强调了分辨率与成本的平衡,以及如何通过白色扩散器改善视觉效果。这个项目不仅

雕爷学编程 1023

访客日志文件数据分析maven项目(Scala)

访客日志文件数据分析可视化:本次小项目是利用自己搭建的网站模拟访问,使用埋点技术获取数据,之后对获取的数据处理分析,入库,可视化。

m0_53644843的博客 540

【应用】打造你的安全本地AI购物助手:OpenClaw + 淘宝MCP部署全攻略

本文介绍了在Ubuntu虚拟机中配置OpenClaw连接Windows宿主机的淘宝MCP服务的两种方案。核心原理是通过修改MCP服务监听地址或SSH隧道转发,实现跨网络访问。方案1推荐修改MCP服务绑定0.0.0.0并配置防火墙放行端口,适合长期使用;方案2通过SSH隧道转发,适合临时测试。文章详细说明了环境准备、配置文件修改及两种互通方案的具体实施步骤,重点解决了虚拟机与宿主机网络互通的关键问题。

海兰 1320

挣脱枷锁:网页禁止复制/F12失效/右键失灵时的破局之道

大家在网上冲浪的否遇到过这种情况?急需网页上的一段关键信息、一段优美的文字、一个重要的代码片段,或者只是想收藏某篇文章,却发现:文本选择被阻止,右键菜单被禁用,开发者工具(F12)被屏蔽,查看源代码(Ctrl+U)失效?本文会有力解决这些封锁。

安德洛夫 2109

scala akka_Scala和Akka的未来组合

scala akka Scala是功能性和面向对象的语言,可在JVM上运行。 对于并发和/或并行编程, Akka框架是一个合适的选择, Akka框架为各种并发任务提供了丰富的工具集。 在这篇文章中,我想展示一个小例子,说明如何使用Futures和Actors在多个文件/服务器上安排日志文件搜索作业。 建立 我使用Typesafe Activator Hello-Akka模板创建了我的设置。...

208

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Scala-CSV:高效处理CSV文件的Scala库

`scala-csv` 是一个专为Scala开发者设计的高效CSV文件处理库。无论你是需要读取、写入还是处理CSV文件,`scala-csv` 都能为你提供简洁、灵活的API。该库支持多种CSV文件操作方式,包括一次性读取所有行、逐行读取、流式读取等,同时还支持自定义CSV格式和编码,满足各种复杂需求。 ## 项目技术分析 `scala-csv` 基于Scala语言开发,充分利用了Scala的

gitblog_00712的博客 794

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

idea中Scala项目环境搭建

IDEA中Scala项目环境搭建 1.scala环境搭建 1)安装步骤 (1)首先确保jdk1.8安装成功 (2)下载对应的Scala安装文件scala-2.11.8.zip (3)解压scala-2.11.8.zip,解压到E:\scala (4)配置Scala的环境变量 2)测试 定义两个变量n和n2,并计算n和m两个变量的和 2.Scala插件安装 默认情况下IDEA不支持Scala的开发,需要安装Scala插件。 安装后点击重启idea即可 3.idea环境创建 1)步骤1:file->

Ordinary_Data 1824

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

scala-流量统计

本文介绍了如何使用Hadoop MapReduce框架统计日志文件中每个手机号的总上行流量、总下行流量和总流量。首先,定义了一个FlowBean类,用于封装手机号、上行流量和下行流量,并实现Writable接口以支持序列化。接着,编写了FlowMapper类,在map方法中切割日志数据,提取手机号和流量信息,并封装为FlowBean对象。然后,编写了FlowReducer类,在reduce方法中汇总每个手机号的总流量并输出结果。最后,通过FlowDriver类配置并启动MapReduce任务。运行程序后,可

2301_82118291的博客 818

python执行bat文件并重定向输出日志_Python:重定向子进程Popen标准输出到日志文件...

我有一个Python进程运行,有一个记录器对象配置为在日志文件中打印日志。Python:重定向子进程Popen标准输出到日志文件现在,我试图通过使用subprocess模块通过此python进程调用scala脚本。subprocess.Popen(scala_run_command, stdout=subprocess.PIPE, shell=True)的问题是,只要蟒蛇进程退出,它挂起外壳,这涉...

weixin_39707693的博客 931

scala解析一段日志

日志文件,格式如下: # Http-Method IP/domain timesGET www.baidu.com 1234GET www.qq.com 123GET 127.0.0.1 123 GET 10.123.76.3 12 GET 10.123.76.4 343 统计对所有IP的GET请求数, 比如上述的例子已经返回478 import java.io._ import sca

bingyuac 1572

Ivy Transpiler 源码到源码翻译器:基于 AST 的深度学习框架代码互转实战指南

本篇技术指南围绕 Ivy 仓库中的 [Source to Source Translator](https://link.gitcode.com/i/13307b131637936fd796af4a81e4a48b)(源码到源码翻译器)展开,系统讲解其“源框架 → Frontend IR → Ivy Core → 目标框架”的三阶段翻译流水线、`ivy.transpile()` 核心 API 的完

gitblog_00526的博客 1025
上一篇: Centos7.9安装python的miniconda环境和配置conda镜像源
下一篇: Pytorch使用NN神经网络模型实现经典波士顿boston房价预测问题
数智客栈
博客等级 码龄17年 5699粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值