Golang日志--Seelog的简单用法

Golang日志--Seelog的简单用法

原创  2015年02月26日 18:35:27

Beego自带的log包虽然功能比较完善,但是在日志中会带上日志级别的时间戳,而且这个时间戳还删除不了。

因为项目需要,所以研究了下Golang中其他的日志包,发现seelog正好能满足俺们项目的需要,因此在这做简单介绍。

seelog的地址:"github.com/cihub/seelog"

seelog功能强大,在此简单介绍将日志配置保存在xml文件中,并从文件中获取配置,然后使用的流程。

在controllers包的某个文件中:

[plain]  view plain  copy
  1. mainlog, _ = seelog.LoggerFromConfigAsFile("conf/seelog-main.xml")  
LoggerFromConfigAsFile会从后面的文件中获取日志配置,如上则是从conf包的seelog-main.xml文件中获取配置;

seelog-main.xml文件内容如下:

[plain]  view plain  copy
  1. <seelog>  
  2.     <outputs formatid="main">  
  3.         <buffered size="10000" flushperiod="1000">  
  4.             <rollingfile type="date" filename="/var/log/main.log" datepattern="2006.01.02" maxrolls="30"/>  
  5.         </buffered>  
  6.     </outputs>  
  7.     <formats>  
  8.         <format id="main" format="%Msg%n"/>  
  9.     </formats>  
  10. </seelog>  

其中:

outputs里面是日志的配置,formats里面是日志输出格式配置。

formatid对应下面的formats里对应id的输出格式。

buffered指的是缓冲设置:

size--缓冲区大小,单位byte;flushperiod--缓冲间隔,单位ms

rollingfile里面是日志的设置:

type--回滚的方式,date指按日期回滚,size指按大小回滚

filename--文件路径

datepattern--日期的格式,按日期回滚时才会有此选项

maxrolls--日志保存的最大期限,此处会保存30天以内的日志

format里面:

id--对应的outputs的formatid

format--日志输出的格式,%Msg%n表示只会输出日志并换行

使用的时候,如下:

[plain]  view plain  copy
  1. defer mainlog.Flush()  
  2. mainlog.Info("需要输入的日志")  
即可。以后会完善seelog的用法

转自: http://blog.csdn.net/stevefang/article/details/43955501
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Go语言中,没有内置的SCP(Secure Copy)功能,但你可以使用第方库来实现SCP功能。一个常用的第三方库是`github.com/pkg/sftp`,它提供了SSH文件传输协议的实现。 要使用该库进行SCP操作,你需要先建立一个SSH连接,然后使用SFTP客户端进行文件传输。下面是一个简单的示例代码: ```go package main import ( "fmt" "golang.org/x/crypto/ssh" "github.com/pkg/sftp" "io" "os" ) func main() { // SSH连接配置 config := &ssh.ClientConfig{ User: "username", Auth: []ssh.AuthMethod{ ssh.Password("password"), }, HostKeyCallback: ssh.InsecureIgnoreHostKey(), } // 建立SSH连接 conn, err := ssh.Dial("tcp", "example.com:22", config) if err != nil { fmt.Println("Failed to connect to the server:", err) return } defer conn.Close() // 创建SFTP客户端 client, err := sftp.NewClient(conn) if err != nil { fmt.Println("Failed to create SFTP client:", err) return } defer client.Close() // 打开本地文件 localFile, err := os.Open("/path/to/local/file") if err != nil { fmt.Println("Failed to open local file:", err) return } defer localFile.Close() // 创建远程文件 remoteFile, err := client.Create("/path/to/remote/file") if err != nil { fmt.Println("Failed to create remote file:", err) return } defer remoteFile.Close() // 将本地文件内容复制到远程文件 _, err = io.Copy(remoteFile, localFile) if err != nil { fmt.Println("Failed to copy file:", err) return } fmt.Println("File copied successfully!") } ``` 请注意,上述示例代码中的`username`、`password`、`example.com:22`、`/path/to/local/file`和`/path/to/remote/file`需要根据实际情况进行替换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值