首页 > 其他分享 >vue2 txt日志打印以及读取txt文本数据

vue2 txt日志打印以及读取txt文本数据

时间:2024-03-21 11:59:31浏览次数:27  
标签:logAddress .. let vue2 time date 日志 txt

1.创建log.js在根目录下

let fs = require('fs')
import { parseTime } from "./src/renderer/utils/index"
import { MessageBox } from 'element-ui'
function writeLog(value){  
  let logAddress =localStorage.getItem('logAddress')
  logAddress = logAddress?.replace(/\\/g, '/')
  if(logAddress?.charAt(logAddress.length - 1) !== '\/'){
    logAddress += '\/'
  } 
  fs.mkdirSync(logAddress, { recursive: true })  
  let date = parseTime(new Date(),'{y}-{m}-{d}')+'的日志'
  let filePath = `${logAddress}${date}.txt` 
  let time = parseTime(new Date(),'{h}:{i}:{s}.{t}')
  try{ 
    fs.appendFileSync(filePath, `${time}:${value}\n`, err => {
      if (err) { 
        console.info(err)
        throw err
      }
    })
  }catch (error) {
    MessageBox.alert('日志写入出错,请联系管理员解决', '日志写入异常')
    console.error('An error occurred while appending data:', error)
  }
}   
export default writeLog

2.  index.js 时间格式的封装

 export function parseTime(time, cFormat) {
  if (arguments.length === 0) {
    return null
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  let date
  if (typeof time === 'object') {
    date = time
  } else {
    if ((typeof time === 'string')) {
      if ((/^[0-9]+$/.test(time))) {
        // support "1548221490638"
        time = parseInt(time)
      } else {
        // support safari
        // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
        time = time.replace(new RegExp(/-/gm), '/')
      }
    }

    if ((typeof time === 'number') && (time.toString().length === 10)) {
      time = time * 1000
    }
    date = new Date(time)
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay(),
    t:date.getMilliseconds()
  }
  const time_str = format.replace(/{([ymdhisat])+}/g, (result, key) => {
    const value = formatObj[key]
    // Note: getDay() returns 0 on Sunday
    if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
    if (key === 't') { return value.toString().padStart(3, '0') }
    return value.toString().padStart(2, '0')
  })
  return time_str
}

3.使用

getLogAddress(){  
      let _this = this
      let settingFilePath = process.env.NODE_ENV == 'production'? process.resourcesPath + '/setting/log.txt' : path.resolve(__dirname, "../../setting/log.txt")
      const r1 = readline.createInterface({
        input: fs.createReadStream(settingFilePath)
      }) 
      let arr = []
      var i = 1 //txt中的行数
      r1.on('line', function(line){ 
        arr.push(line)  
        i+=1
      })   
      r1.on('close', () => {    
        if(arr.length && arr[1]){
            localStorage.setItem('logAddress',arr[1]) 
        }else{
          let address = process.env.NODE_ENV == 'production'? process.resourcesPath + "/logs/" : path.resolve(__dirname, "../../logs/")
          localStorage.setItem('logAddress',address)  
        }  
      })   
    },



import writeLog from '../../log'

writeLog('---软件启动---') 

4.记得在package.json 添加log的配置,在安装文件里面会看到日志

"build": { 
    "extraResources": [ 
      {
        "from": "setting/",
        "to": "setting/"
      },
      {
        "from": "logs/",
        "to": "logs/"
      }
    ],
  },

  

标签:logAddress,..,let,vue2,time,date,日志,txt
From: https://www.cnblogs.com/daifuchao/p/18087028

相关文章

  • vue2扫码枪串口模式的使用
    1.下载依赖包  serialportnpmiserialport2.创建文件code-gun.jsvar{SerialPort}=require("serialport");//串口列表SerialPort.list().then((ports)=>{ports.forEach((port)=>{console.log(port);});}).catch((err)=&......
  • Asp-Net-Core开发笔记:实现动态审计日志功能
    前言最近一直在写Go和Python,好久没写C#,重新回来写C#代码时竟有一种亲切感~说回正题。在当今这个数字化迅速发展的时代,每一个操作都可能对业务产生深远的影响,无论是对数据的简单查询,还是对系统配置的修改。在这样的背景下,审计日志不仅仅是一种遵循最佳实践的手段,更是确......
  • Serilog 日志记录库
    Serilog是一个.NET平台上的强大的日志记录库。它提供了丰富的API以及可插拔的日志格式化器和输出器,使得在.NET应用程序中实现可定制化的、可扩展的日志记录变得轻而易举。在本文中,我们将探讨Serilog的一些基础知识、API、配置和示例。基础知识日志级别Serilog支持多......
  • 如何设置ORACLE数据库的OGG日志
    若要使用OGG,ORACLE必须开启归档模式,可以理解为设置ORACLE的REDOLOG落地,这样才能让OGG拿到所需的日志信息.1.查询数据库是否处于归档模式,如果处于归档模式,则返回结果ARCHIVELOG   SQL>selectlog_modefromv$database;2.如果不处于归档模式,则要开......
  • 使用AOP记录feign调用日志
    文章目录业务场景使用DemoClientFeignDemlFeignFallBack主要代码DockLogAspectDockLogDockLogServiceDockLogAddDTOJacksonUtils业务场景记录请求第三方接口的情况。@DockLog可以用在类上也可以用在方法上使用DemoClientFeignimportorg.springframework.cloud......
  • vue2 vue-print-nb
    一、安装插件1、npminstallvue-print-nb--save二、引入Vue项目在main.js中添加--全局挂载  importPrintfrom'vue-print-nb'  Vue.use(Print) 三、前端代码一、操作项中的打印按钮<spantitle="打印"><svg-iconicon-class="printer"class=&quo......
  • 达梦归档归档日志丢失不连续的备份处理
    环境:OS:Centos7DB:DM8 1.归档目录看不出连续性[dmdba@host01arch]$ls-altotal148drwxr-xr-x2dmdbadinstall250Mar2014:09.drwxr-xr-x7dmdbadinstall67Mar1514:47..-rw-r--r--1dmdbadinstall118784Mar2014:03ARCHIVE_LOCAL1_0x61603......
  • C#.NET 逐行读取TXT文本
    C#.NET逐行读取TXT文本usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\path\to\your\file.txt";//替换为你的TXT文件路径try{//创建一个StreamReader......
  • 想要把PDF文件转TXT文本编辑改动怎么办?三秒钟帮你搞定 PDF编辑器
    pdf是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。有点遗憾的是,大部分移动设备诸如手机、MP4等是不支持打开......
  • CAD学习日志-003
    *******************************************************/ 保存默认自动保存间隔是10分钟(可改),自动创建备份副本。一般保存为2007的一个版本。向上兼容,便于交流。*******************************************************/ 加密20版本以上,可以保存为一个压缩包,然后对......