我已经制作了一个Logging特性,它封装了日志记录实现的细节,它既漂亮又懒惰,所以特别是当特定日志级别不活动时也是如此.
/**
* A SLF4J based logging trait
*/
trait Log {
import org.slf4j.Logger
import org.slf4j.LoggerFactory
val loggedClazz: Class[_]
lazy val logger: Logger = LoggerFactory.getLogger(loggedClazz.getClass)
def logDebug(codeblock: => String) = {
if (logger.isDebugEnabled) {
logger.debug(codeblock)
}
}
def logError(codeblock: => String) = {
if (logger.isErrorEnabled) {
logger.error(codeblock)
}
}
def logInfo(codeblock: => String) = {
if (logger.isInfoEnabled) {
logger.info(codeblock)
}
}
def logWarn(codeblock: => String) = {
if (logger.isWarnEnabled) {
logger.warn(codeblock)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它需要将这个特性混入的类来实现以下内容.
object MyServer extends Log { …Run Code Online (Sandbox Code Playgroud) 以下代码工作得很好.但它看起来如此冗长,肯定有一种更优雅的方式来计算它?
我的想法是我有一个包含100个递增时间戳的列表,我想查看这些时间戳并计算每个时间戳之间的平均时间.
下面的代码起作用,但我确信反转这样的列表真的很低效.
有什么建议?
#!/usr/bin/python
nums = [1,4,6,10]
print nums
nums_orig = list(nums)
nums_orig.pop()
nums.reverse()
nums.pop()
nums.reverse()
print nums
print nums_orig
total = 0
for idx, val in enumerate(nums):
difference = val - nums_orig[idx]
total += difference
print idx, val - nums_orig[idx]
print "Mean difference is %d" % (total / len(nums))
Run Code Online (Sandbox Code Playgroud) 从命令行运行mvn clean install时,我无法在maven-jar-plugin/jar之前运行maven-dependency-plugin/unpack-dependencies.
每次,我看到它在运行jar包之前运行jar:jar,我在google搜索中看到一些关于在maven生命周期中添加预包阶段的讨论,似乎没有工作思路.
基本上我想创建一个包含所有必要类(所有2600个)的jar文件.这个jar获得了一个Manifest,使它能够以下列方式运行:
java -jar blah.jar
Run Code Online (Sandbox Code Playgroud)
如果我能让它上班......
这是xml片段......
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>archivedb.Read</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud) 这是我很长一段时间写的最短的例子之一
我创建并更新了一个元组3
In [65]: arf=(0,1,[1,2,3])
In [66]: arf=(arf[0],arf[1], arf[2] )
In [67]: arf
Out[67]: (0, 1, [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
所以重新分配工作.
现在我尝试改变它的内容.
In [69]: arf=(arf[0],arf[1], [2] )
In [70]: arf
Out[70]: (0, 1, [2])
In [71]: arf=(arf[0],arf[1], arf[2].append(3) )
In [72]: arf
Out[72]: (0, 1, None)
Run Code Online (Sandbox Code Playgroud)
我回来了吗??? 嘿,是什么给出的?对不起,我是一个蟒蛇菜鸟.